AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Strings Zerlegen zum 1000 mal^^

Ein Thema von Deadinpac · begonnen am 7. Mai 2005 · letzter Beitrag vom 8. Mai 2005
Antwort Antwort
Seite 3 von 3     123   
doom98

Registriert seit: 18. Feb 2005
18 Beiträge
 
#21

Re: Strings Zerlegen zum 1000 mal^^

  Alt 8. Mai 2005, 11:21
Wuaegner
Hast recht es geht aber nur in Verbindung mit Chimaira Lösung vielen dank euch beiden
  Mit Zitat antworten Zitat
Beckman

Registriert seit: 12. Jul 2004
205 Beiträge
 
#22

Re: Strings Zerlegen zum 1000 mal^^

  Alt 8. Mai 2005, 12:32
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:

if edit1.text[1] in ['0'..'9'] then...
  Mit Zitat antworten Zitat
Deadinpac

Registriert seit: 8. Aug 2003
Ort: Oberreute
74 Beiträge
 
Delphi 2007 Enterprise
 
#23

Re: Strings Zerlegen zum 1000 mal^^

  Alt 8. Mai 2005, 16:42
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:
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;
MFG

Deadinpac
Sven Grimm
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#24

Re: Strings Zerlegen zum 1000 mal^^

  Alt 8. Mai 2005, 16:46
Zitat von Deadinpac:
hier der Aktuelle QT
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
//...
  for i := 0 to Memo1.Lines.Count do //Alle Einträge durchgehen
//...
Und das klappt??
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Benutzerbild von St.Pauli
St.Pauli

Registriert seit: 26. Dez 2004
351 Beiträge
 
Delphi 7 Personal
 
#25

Re: Strings Zerlegen zum 1000 mal^^

  Alt 8. Mai 2005, 16:51
Zitat von Chimaira:
PS: nicht Memo1.Lines.Count sondern .Count - 1
Hatte vergessen, dass hier zu beherzigen, läuft aber trotzdem einwandfrei...
Gruß St.Pauli
  Mit Zitat antworten Zitat
Deadinpac

Registriert seit: 8. Aug 2003
Ort: Oberreute
74 Beiträge
 
Delphi 2007 Enterprise
 
#26

Re: Strings Zerlegen zum 1000 mal^^

  Alt 8. Mai 2005, 18:48
Nagut nach ausführlichen testen ist mir trozdem was aufgefallen

Das Programm ignoriert mich

alle namen nimmt er bis auf meinen

http://51.by-me.de/sf.jpg

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
Angehängte Dateien
Dateityp: zip project1_791.zip (8,1 KB, 2x aufgerufen)
Dateityp: exe project1_481.exe (481,0 KB, 2x aufgerufen)
Sven Grimm
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#27

Re: Strings Zerlegen zum 1000 mal^^

  Alt 8. Mai 2005, 19:43
Wegen dem '' ist kein gültiger Integerwert: Stell die eigenschaft WordWrap deines Memo auf false
[edit]
oops, falsch [edit2]oder auch nich... [/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.
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Deadinpac

Registriert seit: 8. Aug 2003
Ort: Oberreute
74 Beiträge
 
Delphi 2007 Enterprise
 
#28

Re: Strings Zerlegen zum 1000 mal^^

  Alt 8. Mai 2005, 19:51
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:
Aber der Algorithmus hat noch ne kleine schwachstelle:
Probier das einfache (gültige) log:
weil bei den zweiten lässt er Stylo_Bommel weg

MFG
Deadinpac
Sven Grimm
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#29

Re: Strings Zerlegen zum 1000 mal^^

  Alt 8. Mai 2005, 20:05
Zitat von Deadinpac:
aber was meinst du damit ich steigt da jetzt nicht durch was du mir damit sagen willst
Zitat:
Aber der Algorithmus hat noch ne kleine schwachstelle:
Probier das einfache (gültige) log:
weil bei den zweiten lässt er Stylo_Bommel weg

MFG
Deadinpac
Damit will ich sagen: Der algo könnte dir in der Form noch Probleme bereiten

Wie gesagt, warum er einen Namen auslässt, hab ich noch nicht entdeckt
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Deadinpac

Registriert seit: 8. Aug 2003
Ort: Oberreute
74 Beiträge
 
Delphi 2007 Enterprise
 
#30

Re: Strings Zerlegen zum 1000 mal^^

  Alt 8. Mai 2005, 23:53
Danke Chimaira das du dir auch Fremde QTs anguckst um mir zu Helfen
ihr seit wirklich nett

MFG
Deadinpac
Sven Grimm
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:32 Uhr.
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