| Autor |
Beitrag |
basti_G
Hält's aus hier
Beiträge: 8
|
Verfasst: Do 14.05.09 21:41
hallo liebe delphifreunde,
ich hab hier eine aufgabe bei der ich einfach nicht auf einen grünen zweig komme!
ich habe ein Memofeld gegeben, in dem ich mehrere zeilen text eingebe z.b.:
in der 1. zeile: Anna hetzt Hanna
in der 2. zeile: John rennt schnell
in der 3. zeile: Bernd ist cool
dann habe ich ein editfeld, in dem ich die nummer der zeile eingeben soll, die bearbeitet werden soll z.b.: die 2.zeile
--> dann habe ich einen button "vertausche Zeichen"
wenn ich also nun auf den button klicke soll die wortkette in der ausgewählte
zeile umgedreht werden, bei zeile2 also: llenhcs tnner nhoJ
könnt ihr mir nun sagen, welchen befehl ich dazu nutzen muss bzw. wie die schleife(n) aussehen muss?
wäre euch extrem dankbar, wenn ihr mir helfen könnt!
mfg basti
|
|
Boldar
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: Do 14.05.09 21:45
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.Button1click (sender: Tobject); var str, str2: string; begin str := memo1.lines[strtointdef(edit1.text, 1)-1]; for i := length(str) downto 0 do begin str2 := str2 + str[i]; end; memo1.lines[strtointdef(edit1.text, 1)-1]:= str; end; |
Ungetestet, ich weiss grad nicht ob Tmemo.lines eventuell readonly ist...
|
|
basti_G 
Hält's aus hier
Beiträge: 8
|
Verfasst: Do 14.05.09 21:48
oh man, das ging aber fix ... werds gleich mal testen und meld mich dann nochmal!
aber vielen vielen dank schon mal!
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 14.05.09 22:27
Moin!
@ Boldar: Hey, super!  Machst du auch meine Hausaufgaben?
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
basti_G 
Hält's aus hier
Beiträge: 8
|
Verfasst: Do 14.05.09 23:32
hausaufgaben trifft es nicht ganz  ...
so ganz funzt es noch nicht, werd mich am WE aber mal in ruhe hinsetzen und bisschen basteln, dank dem super ansatz!
jute nacht!
|
|
Mordilion
      
Beiträge: 96
WinXP Prof., Win2k Prof.
Delphi 7 Prof., Delphi 2009 Prof., PHP4/5, CSS, HTML
|
Verfasst: Fr 15.05.09 08:22
Als kleiner Tipp noch, schau dir mal die Funktion "ReverseString" aus der StrUtils.pas an. Die macht genau das was du brauchst.
Gruß
Mordi
_________________ Für das große Chaos haben wir Computer. Die übrigen Fehler machen wir von Hand.
Der Mensch ist das wichtigste und kostbarste Peripheriegerät einer Computeranlage.
|
|
basti_G 
Hält's aus hier
Beiträge: 8
|
Verfasst: Fr 15.05.09 19:25
hab es jetzt wie folgt gelöst und funktioniert einwandfrei!
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure TForm1.Button2Click(Sender: TObject);
var zk : string; Z : Integer; i:integer; zk2: string;
begin Z:=strtoint (Edit1.text); zk:=Memo1.Lines[Z]; for i :=length(zk) downto 1 do begin zk2:= zk2+copy(zk,i,1);
end; memo1.Lines[z] := zk2;
end; |
schönes WE und vielen dank für eure hilfe!
Moderiert von Narses: Delphi-Tags hinzugefügt
|
|
Regan
      
Beiträge: 2157
Erhaltene Danke: 72
Java (Eclipse), Python (Sublimetext 3)
|
Verfasst: Fr 15.05.09 20:08
Ein Nachtrag von mir:
Um den Vorschlag von Mordilion zu verwenden und etwas Fehlerbehebung zu betreiben, kann man den Quelltext auf drei Zeilen und einer Variable verkürzen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.Button2Click(Sender: TObject); var z: Integer; begin if not (TryStrToInt(Edit1.Text,z)) then exit; if (z < 0) or (z > Memo1.Lines.Count-1) then exit; Memo1.Lines.Strings[z] := ReverseString(Memo1.Lines.Strings[z]); end; |
So halbiert man auch die Codelänge  .
|
|
basti_G 
Hält's aus hier
Beiträge: 8
|
Verfasst: Fr 15.05.09 22:46
auch sehr schön und vor allem kürzer ... vielen dank noch mal an euch!
|
|