![]() |
Re: Strings Zerlegen zum 1000 mal^^
Wuaegner
Hast recht es geht aber nur in Verbindung mit Chimaira Lösung vielen dank euch beiden :-D |
Re: Strings Zerlegen zum 1000 mal^^
Delphi-Quellcode:
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 das is ja brutal viel code... wollt net klugscheissern, aber fuer die zukunft, das geht viel kuerzer:
Delphi-Quellcode:
if edit1.text[1] in ['0'..'9'] then...
|
Re: Strings Zerlegen zum 1000 mal^^
Juhu es Klappt danke St.pauli und die anderen DPlers die Mir Geholfen haben :-) :-)
So St.Pauli hatte den QT noch ein Bisschen überarbeitet hier der Aktuelle QT
Delphi-Quellcode:
MFG
procedure TForm1.Button1Click(Sender: TObject);
VAR i, Geld, Geld2: integer; namealt, nameneu : string; begin Memo1.Lines.LoadFromFile('Geld.txt'); //In der Datei Geld.txt sind alle Daten namealt := Copy(Memo1.Lines[0], 19, Pos(' legt', Memo1.Lines[0])-19); //der erste Name wird erstellt nameneu := ''; for i := 0 to Memo1.Lines.Count do //Alle Einträge durchgehen begin IF (Pos('legt', Memo1.Lines[i]) > 0) THEN nameneu := Copy(Memo1.Lines[i], 19, Pos(' legt', Memo1.Lines[i])-19); IF (Pos('nimmt sich', Memo1.Lines[i]) > 0) THEN nameneu := Copy(Memo1.Lines[i], 19, Pos(' nimmt sich', Memo1.Lines[i])-19); IF (namealt = nameneu) THEN begin IF (Pos('legt', Memo1.Lines[i]) > 0) THEN begin Geld2 := StrToInt(Copy(Memo1.Lines[i], 19 + length(Nameneu) + length(' legt '), Pos(' €', Memo1.Lines[i]) - (19 + length(Namealt) + length(' legt ')))); Geld := Geld + Geld2; //Den "Legt" Betrag addieren end; IF (Pos('nimmt sich', Memo1.Lines[i]) > 0) THEN begin Geld2 := StrToInt(Copy(Memo1.Lines[i], 19 + length(Nameneu) + length(' nimmt sich '), Pos(' €', Memo1.Lines[i]) - (19 + length(Namealt) + length(' nimmt sich ')))); Geld := Geld - Geld2; //- end; end; IF ((namealt = nameneu) = false) THEN //Wenn die namen nicht identisch sind (neuer Benutzer)... begin ListBox1.Items.Add(namealt + ' = ' + IntToStr(Geld)); //...dann adde erstmal die alten Daten in die 2te Memo Geld := 0; //Geld auf 0, eigentlich unnötig namealt := nameneu; //Hier werden die Namen gleichgesetzt, sonst wäre diese Bedinung immer True IF (Pos('legt', Memo1.Lines[i]) > 0) THEN begin Geld2 := StrToInt(Copy(Memo1.Lines[i], 19 + length(Nameneu) + length(' legt '), Pos(' €', Memo1.Lines[i]) - (19 + length(Nameneu) + length(' legt ')))); Geld := Geld2; end; IF (Pos('nimmt sich', Memo1.Lines[i]) > 0) THEN begin Geld2 := StrToInt(Copy(Memo1.Lines[i], 19 + length(Nameneu) + length(' nimmt sich '), Pos(' €', Memo1.Lines[i]) - (19 + length(Nameneu) + length(' nimmt sich ')))); Geld := 0 - Geld2 ; end; IF (i = Memo1.Lines.Count-1) THEN ListBox1.Items.Add(namealt + ' = ' + IntToStr(Geld)); end; IF (i = Memo1.Lines.Count-1) THEN ListBox1.Items.Add(namealt + ' = ' + IntToStr(Geld)); LIstBox1.Sorted := True; end; namealt := ''; nameneu := ''; Geld := 0; MEmo1.Lines.Clear; namealt := Copy(ListBox1.Items[0], 1, Pos(' = ', ListBox1.Items[0])); //der erste Name wird erstellt for i := 0 to ListBox1.Items.Count-1 do begin nameneu := Copy(ListBox1.Items[i], 1, Pos(' = ', ListBox1.Items[i])); IF (nameneu = namealt) THEN begin Geld2 := StrToInt(Copy(ListBox1.Items[i], length(namealt)+3, length(ListBox1.Items[i])-length(name)+3)); Geld := Geld + GEld2; end; IF (nameneu = namealt) = false THEN begin memo1.Lines.Add(Namealt + ' = ' + IntToStr(Geld)); namealt := nameneu; Geld2 := StrToInt(Copy(ListBox1.Items[i], length(namealt)+3, length(ListBox1.Items[i])-length(name)+3)); Geld := 0; Geld := Geld + GEld2; end; end; end; Deadinpac |
Re: Strings Zerlegen zum 1000 mal^^
Zitat:
|
Re: Strings Zerlegen zum 1000 mal^^
Zitat:
|
Re: Strings Zerlegen zum 1000 mal^^
Liste der Anhänge anzeigen (Anzahl: 2)
Nagut nach ausführlichen testen ist mir trozdem was aufgefallen
Das Programm ignoriert mich alle namen nimmt er bis auf meinen ![]() 08.05.05 - 18:23: Fin legt 213664 € in das Schliessfach. 08.05.05 - 17:05: Sven legt 1586 € in das Schliessfach. 08.05.05 - 17:03: addi legt 1526 € in das Schliessfach. 08.05.05 - 15:29: Sven legt 13736 € in das Schliessfach. 08.05.05 - 15:22: Seti nimmt sich 52000 € aus dem Schliessfach. 08.05.05 - 15:21: Nemesis legt 10000 € in das Schliessfach. 08.05.05 - 15:00: Seti nimmt sich 82000 € aus dem Schliessfach. 08.05.05 - 14:23: DragonHeart legt 1172 € in das Schliessfach. 08.05.05 - 14:15: Seti beseitigt das Logbuch. Und Noch Was Komisches Bei der Log sagt er mir das " kein Integerwert ist aber es ist doch das gleiche wie oben nur andere namen und beträge???? 08.05.05 - 18:23: Deadinpac legt 204 € in das Schliessfach. 08.05.05 - 15:32: Deadinpac legt 12952 € in das Schliessfach. 08.05.05 - 15:31: Deadinpac nimmt sich 15000 € aus dem Schliessfach. 08.05.05 - 14:08: Steffan legt 411 € in das Schliessfach. 08.05.05 - 14:04: stylo_bommel legt 49 € in das Schliessfach. 08.05.05 - 14:03: stylo_bommel nimmt sich 250 € aus dem Schliessfach. 08.05.05 - 11:52: Deadinpac legt 578 € in das Schliessfach. 08.05.05 - 10:40: Deadinpac legt 95 € in das Schliessfach. 08.05.05 - 00:01: Deadinpac beseitigt das Logbuch. Aber Sonst klappt alles :-) MFG Deadinpac |
Re: Strings Zerlegen zum 1000 mal^^
Wegen dem '' ist kein gültiger Integerwert: Stell die eigenschaft WordWrap deines Memo auf false ;)
[edit] oops, falsch [edit2]oder auch nich... :lol: [/edit2] der fehler kommt, weil der algo die Option des Beseitigens nicht kennt ;) [/edit] Aber der Algorithmus hat noch ne kleine schwachstelle: Probier das einfache (gültige) log: Geld.txt 08.05.05 - 18:23: legtheresia nimmt sich 213664 € aus dem Schliessfach. |
Re: Strings Zerlegen zum 1000 mal^^
Gut das mit den Wordwarb war das Problem
aber was meinst du damit ich steigt da jetzt nicht durch was du mir damit sagen willst Zitat:
MFG Deadinpac |
Re: Strings Zerlegen zum 1000 mal^^
Zitat:
Wie gesagt, warum er einen Namen auslässt, hab ich noch nicht entdeckt |
Re: Strings Zerlegen zum 1000 mal^^
Danke Chimaira das du dir auch Fremde QTs anguckst um mir zu Helfen
ihr seit wirklich nett MFG Deadinpac |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:49 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