![]() |
STRINGS "kürzen"
Hallo zusammen,
ich wollte letztens nen Programm schreiben, was Namen, die in ein Memo eingetragen werden und nur duch ein Leerzeichen getrennt sind, jeweils in eine neue Zeile packen sollte. Problem is, dass sobald ich mehr ale eine Zeile von Namen benutze, hört das Prgramm niemals auf! Bitte nich meckern, wie ich programmiere, dass weiß ich selber^^
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
VAR INT,n,m:INTEGER; a,b:STRING; begin if checkbox1.checked then exit; checkbox1.checked:=false; a:=''; b:=a; FOR INT:=0 TO memo1.Lines.Count-1 DO BEGIN FOR n:=1 TO length(memo1.Lines[INT]) DO BEGIN if memo1.Lines[INT][n]=' 'THEN BEGIN FOR m:=1 TO n-1 DO a:=a+memo1.Lines[INT][m]; FOR m:=n+1 TO length(memo1.Lines[INT]) DO b:=b+memo1.Lines[INT][m]; memo1.Lines[INT]:=a; memo1.Lines.Add(b); x:=true; break; END; END; end; end; |
Re: STRINGS "kürzen"
sry leute ich hab die falsche kategorie erwischt ich werd das in
Sonstige Fragen zu Delphi nochma posten |
Re: STRINGS "kürzen"
Delphi-Quellcode:
Nicht grad auf Performance und Eleganz, aber sollte tun was du willst - denke ich. Ungetestet hier im Browser getippert.
var
p: Integer; temp: TStringList; begin p := pos(' ', Memo.Text); while p>=0 do begin temp.Lines.Add(copy(Memo.Text, 1, p)); Memo.Text := copy(Memo.Text, p+1, Length(Memo.Text)-p); p := pos(' ', Memo.Text); end; Memo.Text := temp.Text; Edit: Deinen Code hab ich dank des furchtbaren Stils erst garnicht versucht zu verstehen, bzw. den Fehler zu finden. Wenn du weisst, dass es Käse ist, warum änderst du es nicht? |
Re: STRINGS "kürzen"
Zitat:
|
Re: STRINGS "kürzen"
Okay, das sehe ich ein ;)
Generell wird Code, der sich weitestgehend am ![]() |
Re: STRINGS "kürzen"
Hallo SimonRap, sollte auch so gehen.
Delphi-Quellcode:
lg. Astat
memo1.Text := StringReplace(memo1.Text, ' ', #13#10, [rfReplaceAll, rfIgnoreCase]);
|
Re: STRINGS "kürzen"
Und der bewirkt was?
Also wo muss ich den einsetzen? Und wäre so jetzt nur von den Einrückungen der Blöcke besser?:
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
Var Zeile,Leer,n:INTEGER; a,b:String; Begin a:=''; b:=a; For Zeile:=0 To memo1.Lines.Count-1 Do Begin For Leer:=1 To length(memo1.Lines[Zeile]) Do Begin if memo1.Lines[Zeile][Leer]=' 'Then begin For n:=1 To Leer-1 Do a:=a+memo1.Lines[Zeile][n]; For n:=Leer+1 To length(memo1.Lines[Zeile]) Do b:=b+memo1.Lines[Zeile][n]; memo1.Lines[Zeile]:=a; memo1.Lines.Add(b); break; End; End; End; End; |
Re: STRINGS "kürzen"
Simon :-D bleibt Cool , alles kommt mit der Zeit.
Ich kenne viele Programmierer die meistens Schrott von sich geben, aber Stil haben Die, keine Frage! :mrgreen: Es ist selbstverständlich, dass ein Anfänger probiert zuerst überhaupt was brauchbares zu programmieren und Stil kommt später. Du brauchst Dich hier deswegen nicht zu rechtfertigen… [delphi] BEGIN Muchacho END. |
Re: STRINGS "kürzen"
Hallo SimonRap,
Delphi-Quellcode:
Sollte so gehen, teste es mal, wen's nich klappt meld Dich einfach wieder, kein Problem, musst dich nur traun :hi: !!procedure TForm1.Button3Click(Sender: TObject); begin memo1.Text := StringReplace(memo1.Text, ' ', #13#10, [rfReplaceAll, rfIgnoreCase]); end; lg. Astat |
Re: STRINGS "kürzen"
Zitat:
ich sitz ne halbe Stunde an nem Programm und es geht net, während du dir mal eben eine Zeile ausdenkst und die funktioniert!!!!!! Naja trotzdem thx, es funktioniert jedenfalls! ![]() ![]() ![]() ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz