Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   STRINGS "kürzen" (https://www.delphipraxis.net/147210-strings-kuerzen.html)

SimonRap 3. Feb 2010 21:50


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;

SimonRap 3. Feb 2010 22:16

Re: STRINGS "kürzen"
 
sry leute ich hab die falsche kategorie erwischt ich werd das in
Sonstige Fragen zu Delphi nochma posten

Medium 3. Feb 2010 22:18

Re: STRINGS "kürzen"
 
Delphi-Quellcode:
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;
Nicht grad auf Performance und Eleganz, aber sollte tun was du willst - denke ich. Ungetestet hier im Browser getippert.

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?

SimonRap 3. Feb 2010 22:26

Re: STRINGS "kürzen"
 
Zitat:

Zitat von Medium

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?

Das bisschen was ich kann, hab ich in 5 Stunden in der Schule gelernt, da kann man nur in "furchtbaren Stil" schreiben...

Medium 3. Feb 2010 22:34

Re: STRINGS "kürzen"
 
Okay, das sehe ich ein ;)

Generell wird Code, der sich weitestgehend am offiziellen Styleguide orientiert am besten verstanden. Keiner Verlangt da eine 1:1 Umsetzung, aber gerade die Vorschläge zur Einrückung von Blöcken machen einem selbst das Leben unendlich leichter. Wenn du also durchaus Interesse an dem Krams hast, ist das sicherlich eine interessante Lektüre!

Astat 3. Feb 2010 22:54

Re: STRINGS "kürzen"
 
Hallo SimonRap, sollte auch so gehen.

Delphi-Quellcode:
memo1.Text := StringReplace(memo1.Text, ' ', #13#10, [rfReplaceAll, rfIgnoreCase]);
lg. Astat

SimonRap 3. Feb 2010 22:57

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;

Muchacho 3. Feb 2010 22:59

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.

Astat 3. Feb 2010 23:22

Re: STRINGS "kürzen"
 
Hallo SimonRap,

Delphi-Quellcode:

procedure TForm1.Button3Click(Sender: TObject);
begin
  memo1.Text := StringReplace(memo1.Text, ' ', #13#10, [rfReplaceAll, rfIgnoreCase]);
end;
Sollte so gehen, teste es mal, wen's nich klappt meld Dich einfach wieder, kein Problem, musst dich nur traun :hi: !!

lg. Astat

SimonRap 4. Feb 2010 00:22

Re: STRINGS "kürzen"
 
Zitat:

Zitat von Astat
Sollte so gehen, teste es mal, wen's nich klappt meld Dich einfach wieder, kein Problem, musst dich nur traun :hi: !!

lg. Astat

:?: :?: :?: :?: :?: :wiejetzt: :wiejetzt: :wiejetzt: :wiejetzt: :wiejetzt: Ich check nix mehr:
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! http://www.sowi-forum.com/forum/images/smilies/thx.gifhttp://www.sowi-forum.com/forum/images/smilies/thx.gifhttp://www.sowi-forum.com/forum/images/smilies/thx.gifhttp://www.sowi-forum.com/forum/images/smilies/thx.gif


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 Uhr.
Seite 1 von 2  1 2      

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