Delphi-PRAXiS

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 20: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 21: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 21: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 21: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 21: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 21: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 21: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 21: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 22: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 3. Feb 2010 23: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

SimonRap 3. Feb 2010 23:47

Sortieren Strings
 
Nächstes Problem^^:
Hab dem Programm jetzt noch ein Bubblesort verpasst, nur das Problem is, der brauch ewig...
Hab das mal mit 1.000 Strings laufen lassen und das wird einfach net fertig!
Kann mir jmd das Prinzip eines schnelleren Sortieralgorithmuses und wie es ungefähr funktioniert erkären?

SimonRap 3. Feb 2010 23:51

Re: Sortieren Strings
 
Zitat:

Zitat von SimonRap
Nächstes Problem^^:
Hab dem Programm jetzt noch ein Bubblesort verpasst, nur das Problem is, der brauch ewig...
Hab das mal mit ca. 10.000 Strings laufen lassen und das wird einfach net fertig!
Kann mir jmd das Prinzip eines schnelleren Sortieralgorithmuses und wie es ungefähr funktioniert erkären?


Sir Rufo 3. Feb 2010 23:53

Re: STRINGS "kürzen"
 
2 Sachen dazu:

1. Für jede Frage einen neuen Thread (nicht zwei neue :mrgreen: )
2. Suche hier im Forum nach "Sortieren" oder "Sortier Algorithmus" dat wird dich erschlagen und auf jeden fall zufrieden stellen :wink:

ps: kann es sein, dass deine tastatur/maus irgendwie ein eigenleben hat :mrgreen:

edit: btw. wenn du die in dem memo sortiert haben möchtest, dann schreib doch einfach mal:
Delphi-Quellcode:
Memo1.Lines.Sorted := True;

SimonRap 3. Feb 2010 23:58

Re: STRINGS "kürzen"
 
na gut ich werds ma so probieren^^

SimonRap 4. Feb 2010 00:04

Re: STRINGS "kürzen"
 
Zitat:

Zitat von Sir Rufo

edit: btw. wenn du die in dem memo sortiert haben möchtest, dann schreib doch einfach mal:
Delphi-Quellcode:
Memo1.Lines.Sorted := True;

das mach ich net weil es diese methode bei mit nicht gibt^^

Sir Rufo 4. Feb 2010 00:13

Re: STRINGS "kürzen"
 
da hast du völlig wahr :mrgreen: die blöden TStrings und TStringList
Dann halt über einen kleinen Umweg:
Delphi-Quellcode:
with TStringList.Create do
  try
    Text := Memo1.Lines.Text;
    Sort; // es würde auch gehen Sorted := True;
    Memo1.Lines.Text := Text;
  finally
    Free;
  end;

SimonRap 4. Feb 2010 00:22

Re: STRINGS "kürzen"
 
oha mit bubblesort hab ich für 1000 strings 2 minuten gebraucht, damit brauch ich für 15000 strings 1 sekunde^^
ich sag nur: Kaum macht man's richtig - schon funktioniert's :mrgreen: :mrgreen: :mrgreen: ^^
Dann nochma:
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.gifhttp://www.sowi-forum.com/forum/images/smilies/thx.gifhttp://www.sowi-forum.com/forum/images/smilies/thx.gif
das mit dem neuen thread aufmachen hat sich wohl erledigt^^

Medium 4. Feb 2010 01:26

Re: STRINGS "kürzen"
 
My lovely mister singing club, hab ich kompliziert gedacht vorhin :shock:. Müssen die Schleifen von SimonRap gewesen sein, die haben mich auch an meinen Schuhen schon immer verwirrt :stupid:

SimonRap 4. Feb 2010 13:03

Re: STRINGS "kürzen"
 
Zitat:

Zitat von Medium
Müssen die Schleifen von SimonRap gewesen sein, die haben mich auch an meinen Schuhen schon immer verwirrt :stupid:

:-D :-D Jetzt wieder alles auf mich schieben^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:50 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-2025 by Thomas Breitkreuz