Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Strings Zerlegen zum 1000 mal^^ (https://www.delphipraxis.net/45504-strings-zerlegen-zum-1000-mal%5E%5E.html)

Deadinpac 7. Mai 2005 14:14


Strings Zerlegen zum 1000 mal^^
 
Moin DPlers

Ich habe folgende Frage habe in der suche wohl falsche begriffe eingegeben so das ich nicht das richtige gefunden habe ich habe folgende frage

ich möchte strings oder ganze memos zerlegen und wörter raussotieren

im memo stehen sie so

12.12.2004 09:34:59 XXX nimmt sich XXX € Aus den Schliessfach
12.12.2004 08:12:45 XXX Legt XXX € ins Schliessfach
12.12.2004 07:28:38 XXX beseitigt das Schliessfach

und ich möchte aus diesen Log immer die XXX rausholen nur es sind keine trennzeichen gegeben

vllt hat ja jemand von euch ein code schnipsel übrig oder weiss mit welchen suchbegriffen ich das richtige finden kann oder event. ein deutsches tutorial

mfg
deadinpac

Ultimator 7. Mai 2005 14:25

Re: Strings Zerlegen zum 1000 mal^^
 
[oh]copy, pos, delete[/oh]

Hierzu dürfte auch die Suche was hergeben.
Frohes Schaffen ;)

mirage228 7. Mai 2005 14:26

Re: Strings Zerlegen zum 1000 mal^^
 
Oder vielleicht kannst Du auch etwas mit [dp="reguläre Ausdrücke"]Regulären Ausdrücken[/dp] anfangen. Die sind in Deinem Fall vielleicht auch ganz nützlich.

mfG
mirage228

Duffy 7. Mai 2005 14:41

Re: Strings Zerlegen zum 1000 mal^^
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Deadinpac,
meinst Du das zerlegen so?

bye
Claus

Deadinpac 7. Mai 2005 15:08

Re: Strings Zerlegen zum 1000 mal^^
 
Danke an alle das ihr so schnell gepostet habt :-)

und Danke Duffy für dein Demo so ist das schon ganz gut so bräuchte ich mir ja nur die passende zeile rausfischen so das ich das dann so habe

XXX = XXX €

aber ich guck mir erstmal den quelltext an

mfg
deadinpac

St.Pauli 7. Mai 2005 15:42

Re: Strings Zerlegen zum 1000 mal^^
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, Duffy war schneller, aber wegschmeißen wollt ich es nicht.

Delphi-Quellcode:

procedure TForm1.Button1Click(Sender: TObject);
VAR i, i2, i3 : integer;
    a, b, c : string;
    ende : boolean;
begin
 
//Dient nur als Beispiel - änder Lines.Add um in LoadFromFile
  Memo1.Lines.Add('12.12.2004 09:34:59 XXX nimmt sich 500000 € Aus den Schliessfach');
  Memo1.Lines.Add('12.12.2004 08:12:45 XXX Legt 565656 € ins Schliessfach');
  Memo1.Lines.Add('12.12.2004 07:28:38 Horst beseitigt das Schliessfach');


  for i := 0 to Memo1.Lines.Count do
    begin
     a := '';
     i2 := 20; //startet hinter dem datum
     b := Memo1.Lines[i];
     ende := False;
    while (i2 <= Length(b)) do
      begin
      i2 := i2 + 1;
          IF ((b[i2] = ' ') = false) AND (ende = False) THEN
            begin
              a := a + b[i2];
            end;
          IF (b[i2] = ' ') THEN ende := True; //Wenn b[i2] kein Buchstabe mehr ist bedeutet das, dass der name zuende ist.
      end;

   ende := False;

    IF ((a = '') = false) THEN a := a + ' = '; //Falls nichts gefunden wurde auch nicht dazu tun
   
    i3 := 20; //Startet wieder hinter dem Datum

    while i3 < Length(b) do
      begin
        IF (b[i3] = '1')   //Wenn b[i3] eine Zahl ist...
        OR (b[i3] = '2')
        OR (b[i3] = '3')
        OR (b[i3] = '4')
        OR (b[i3] = '5')
        OR (b[i3] = '6')
        OR (b[i3] = '7')
        OR (b[i3] = '8')
        OR (b[i3] = '9')
        OR (b[i3] = '0') THEN
          begin
            a := a + b[i3];
         end;
        IF (b[i2] = ' ') THEN ende := True; //Wenn leerzeichen dann wieder beenden
        i3 := i3 + 1;
      end;

      IF ((a = '') = false) THEN a := a + ' €';
        Memo2.Lines.Add(a);
     end;
end;

end.

Deadinpac 7. Mai 2005 15:55

Re: Strings Zerlegen zum 1000 mal^^
 
Danke St.Pauli für deine Arbeit

So habs mir mal angeguckt und es macht genau das was es machen soll

wäre es denn auch möglich den code so zu verändern das er es auch gleich ausrechnet?

d.h wenn die liste so aussieht

07.05.05 - 17:00: SweetBini legt 1023 € in das Schliessfach.
07.05.05 - 16:59: SweetBini nimmt sich 1000 € aus dem Schliessfach.
07.05.05 - 16:42: stylo_muetze nimmt sich 1600 € aus dem Schliessfach.
07.05.05 - 16:40: stylo_muetze nimmt sich 4000 € aus dem Schliessfach.
07.05.05 - 16:39: stylo_muetze legt 169 € in das Schliessfach.
07.05.05 - 15:01: Deadinpac legt 220 € in das Schliessfach.
07.05.05 - 14:59: stylo_bommel legt 99 € in das Schliessfach.
07.05.05 - 14:52: stylo_bommel nimmt sich 400 € aus dem Schliessfach.
07.05.05 - 14:51: stylo_bommel nimmt sich 4000 € aus dem Schliessfach.
07.05.05 - 14:23: Hippi4Slim legt 1 € in das Schliessfach.
07.05.05 - 14:23: Hippi4Slim legt 1 € in das Schliessfach.
07.05.05 - 14:23: Hippi4Slim legt 1 € in das Schliessfach.
07.05.05 - 14:23: Hippi4Slim legt 1 € in das Schliessfach.
07.05.05 - 14:23: Hippi4Slim legt 1 € in das Schliessfach.
07.05.05 - 14:23: Hippi4Slim legt 1 € in das Schliessfach.
07.05.05 - 14:23: Hippi4Slim legt 1 € in das Schliessfach.
07.05.05 - 14:23: Hippi4Slim legt 1 € in das Schliessfach.
07.05.05 - 14:23: Hippi4Slim legt 1337 € in das Schliessfach.
07.05.05 - 14:03: Steffan legt 207 € in das Schliessfach.

das er es gleich zusammen rechnet das es dann so aussieht

Steffan = 207 €
Hippi4Slim = 1345 €
Stylo_Bommel = - 4301 €
Deadinpac = 220 €
Stylo_Muetze = - 5431 €
SweetBini = 23 €


mfg
deadinpac

Deadinpac 7. Mai 2005 17:32

Re: Strings Zerlegen zum 1000 mal^^
 
So was mir gerade noch aufgefallen ist ist das bei Hippi4Slim immer eine 4 dranhängt

also anstatt von 1 € schreibt er 41 €

und der qt von St.pauli ist wohl gut aber ich checkt denn irgendwie nicht ganz :-(

vllt könnt ihr mir noch ein paar tips geben wäre nett

mfg
deadinpac

ggfan 7. Mai 2005 17:40

Re: Strings Zerlegen zum 1000 mal^^
 
Liste der Anhänge anzeigen (Anzahl: 1)
Probier mal das hier aus.
Das Programm teilt einen Satz bei den Leerzeichen auf.

Michael Leyhe 7. Mai 2005 18:49

Re: Strings Zerlegen zum 1000 mal^^
 
Wenn nach dem XXX immer ein €uro-Zeichen steht, dann kann man mit pos dieses Zeichen suchen und dann alle Zahlen die davor stehen auslesen.

Zitat:

Zitat von Deadinpac
So was mir gerade noch aufgefallen ist ist das bei Hippi4Slim immer eine 4 dranhängt

Dazu muss ich deinen Code sehen um genaueres festzustellen, aber ich vermute mal, dass die 4 aus dem Namen Hippi4Slim kommt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:35 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz