Autor Beitrag
basti_G
Hält's aus hier
Beiträge: 8



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1555
Erhaltene Danke: 70

Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
BeitragVerfasst: Do 14.05.09 21:45 
ausblenden 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 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 14.05.09 22:27 
Moin!

@user profile iconBoldar: Hey, super! :D Machst du auch meine Hausaufgaben? :zustimm:

cu :roll:
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
basti_G Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 96

WinXP Prof., Win2k Prof.
Delphi 7 Prof., Delphi 2009 Prof., PHP4/5, CSS, HTML
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Fr 15.05.09 19:25 
hab es jetzt wie folgt gelöst und funktioniert einwandfrei!
ausblenden 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;        //Inhalt Memofeld
     Z : Integer;       //Z - Zahl in Edit1
      i:integer;
     zk2: string;

begin
      Z:=strtoint (Edit1.text);              //auslesen der einzelnen Zeilen
      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 user profile iconNarses: Delphi-Tags hinzugefügt
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Fr 15.05.09 20:08 
Ein Nachtrag von mir:

Um den Vorschlag von user profile iconMordilion zu verwenden und etwas Fehlerbehebung zu betreiben, kann man den Quelltext auf drei Zeilen und einer Variable verkürzen:
ausblenden 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; //Fehlerbehandlung bei flascher Editeingabe
  if (z < 0or (z > Memo1.Lines.Count-1then exit;  //Liegt nicht im Bereich
  Memo1.Lines.Strings[z] := ReverseString(Memo1.Lines.Strings[z]); //Zuweisen
end;

So halbiert man auch die Codelänge :wink: .
basti_G Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Fr 15.05.09 22:46 
auch sehr schön und vor allem kürzer ... vielen dank noch mal an euch!