Autor |
Beitrag |
Breakdown_Chris
Hält's aus hier
Beiträge: 2
|
Verfasst: 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
      
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
|
Verfasst: Sa 20.06.09 12:54
Hallo und
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?  Jürgen
|
|
Breakdown_Chris 
Hält's aus hier
Beiträge: 2
|
Verfasst: 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.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: 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 JüTho bereits erwähnte, die Zeichen (Chars) entsprechend vertauschen.
|
|
JungerIslaender
      
Beiträge: 427
Erhaltene Danke: 5
Win XP
Delphi 7; Delphi 2005
|
Verfasst: 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.
      
Beiträge: 1703
Erhaltene Danke: 25
Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
|
Verfasst: Sa 20.06.09 16:43
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
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Sa 20.06.09 16:44
JungerIslaender hat folgendes geschrieben : | 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^^ |
JüTho hat folgendes geschrieben : | Hallo und
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
      
Beiträge: 427
Erhaltene Danke: 5
Win XP
Delphi 7; Delphi 2005
|
Verfasst: Sa 20.06.09 16:45
Genial: jetzt hast du ja schon die Arbeit vorweg genommen... 
|
|
Andreas L.
      
Beiträge: 1703
Erhaltene Danke: 25
Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
|
Verfasst: Sa 20.06.09 16:47
|
|
jakobwenzel
      
Beiträge: 1889
Erhaltene Danke: 1
XP home, ubuntu
BDS 2006 Prof
|
Verfasst: 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...
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.
      
Beiträge: 1703
Erhaltene Danke: 25
Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
|
Verfasst: Sa 20.06.09 16:48
|
|
FinnO
      
Beiträge: 1331
Erhaltene Danke: 123
Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
|
Verfasst: Sa 20.06.09 17:21
wohl eher den hier?
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| uses ...,strUtils;
begin myString := reverseString(myString); end; |
|
|