Autor Beitrag
Breakdown_Chris
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Sa 20.06.09 12:45 
Hallo Mitglieder des Delphi-Forums,

ich hätte ein Anliegen. Mein Info Lehrer hat mir zum Zeitvertreib eine Aufgabe gegeben, das ich ein Programm schreiben soll, was einen eingegebenen Text rückwärts wieder ausgibt. Leider hab ich keinerlei Ideen wie ich an die Sache rangehen soll. Ich hoffe hier auf ein paar Tipps.


Mfg


Zuletzt bearbeitet von Breakdown_Chris am Sa 20.06.09 13:07, insgesamt 1-mal bearbeitet
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Sa 20.06.09 12:54 
Hallo und :welcome:

Bitte ändere den Titel: wo ist in deiner Frage von einem "Grid" die Rede - egal ob StringGrid oder DataGrid oder was auch immer? Einfach deinen ersten Beitrag mit dem Schere-Button aufrufen und den Titel neu formulieren.

Zum Problem: Ein String ist eine Zeichenkette, also eine Menge von Zeichen. Die musst du mit einer Schleife von hinten nach vorne durchgehen und jedes einzelne Zeichen in einen neuen String eintragen.

Ist das wirklich so schwer, auf dieses Vorgehen zu kommen, dass du nach Tipps suchst? :roll: Jürgen
Breakdown_Chris Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Sa 20.06.09 13:09 
Hallo Jürgen,
erst einmal Danke für deine schnelle Antwort. Ich hatte mir sowas schon fast gedacht, bloss stellt sich mir die Frage, wie soll der Befehl für das umkehren aussehen? Im Unterricht hatten wir das bis jetzt ja noch nicht gemacht. Könnte man da ein Sortierverfahren anwenden oder ist das völliger Schwachsinn?
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Sa 20.06.09 13:28 
Die wohl einfachste Variante wäre es, die Funktion ReverseString aus der StrUtils zu verwenden.
Manuell müsstest du nun, wie user profile iconJüTho bereits erwähnte, die Zeichen (Chars) entsprechend vertauschen.
JungerIslaender
ontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 427
Erhaltene Danke: 5

Win XP
Delphi 7; Delphi 2005
BeitragVerfasst: Sa 20.06.09 15:00 
Ich kann dir ja mal einen kleinen tipp geben, wenn dir das so nicht weiterhilft:
1.Länge des Strings rausfinden,
2.in einer schleife die buchstaben von hinten in einem neuen string nach vorne "packen"

Das wäre so meine idee hoffe es hilf dir^^
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: Sa 20.06.09 16:43 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
function ReverseString(AValue: String):String;
var
  i: Integer;
begin
  Result := '';
  for i := Length(AValue) -1 downto 0 do
    Result := Result + AValue[i];
end;
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Sa 20.06.09 16:44 
user profile iconJungerIslaender hat folgendes geschrieben Zum zitierten Posting springen:
Ich kann dir ja mal einen kleinen tipp geben, wenn dir das so nicht weiterhilft:
1.Länge des Strings rausfinden,
2.in einer schleife die buchstaben von hinten in einem neuen string nach vorne "packen"

Das wäre so meine idee hoffe es hilf dir^^




user profile iconJüTho hat folgendes geschrieben Zum zitierten Posting springen:
Hallo und :welcome:

Zum Problem: Ein String ist eine Zeichenkette, also eine Menge von Zeichen. Die musst du mit einer Schleife von hinten nach vorne durchgehen und jedes einzelne Zeichen in einen neuen String eintragen.
JungerIslaender
ontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 427
Erhaltene Danke: 5

Win XP
Delphi 7; Delphi 2005
BeitragVerfasst: Sa 20.06.09 16:45 
Genial: jetzt hast du ja schon die Arbeit vorweg genommen... :D
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: Sa 20.06.09 16:47 
user profile iconJungerIslaender hat folgendes geschrieben Zum zitierten Posting springen:
Genial: jetzt hast du ja schon die Arbeit vorweg genommen... :D


Naja, bin heut gut gelaunt ;-)
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Sa 20.06.09 16:48 
@Andreas L.: Das is aber nich soo toll, dass der String immer wieder verlängert wird, wenn doch die Endlänge schon bekannt ist...
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
function ReverseString(const AText: string): string;
var
  I: Integer;
  P: PChar;
begin
  SetLength(Result, Length(AText));
  P := PChar(Result);
  for I := Length(AText) downto 1 do
  begin
    P^ := AText[I];
    Inc(P);
  end;
end;

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: Sa 20.06.09 16:48 
user profile iconjakobwenzel hat folgendes geschrieben Zum zitierten Posting springen:
@Andreas L.: Das is aber nich soo toll, dass der String immer wieder verlängert wird, wenn doch die Endlänge schon bekannt ist...
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
function ReverseString(const AText: string): string;
var
  I: Integer;
  P: PChar;
begin
  SetLength(Result, Length(AText));
  P := PChar(Result);
  for I := Length(AText) downto 1 do
  begin
    P^ := AText[I];
    Inc(P);
  end;
end;


Klar, aber welchen der beiden Codes wird er eher verstehen? :D
FinnO
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1331
Erhaltene Danke: 123

Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
BeitragVerfasst: Sa 20.06.09 17:21 
wohl eher den hier?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
uses
  ...,strUtils;

//...

begin
  myString := reverseString(myString);
end;