![]() |
AW: .ini Datei Schlüssel aller Abschnitte zählen
Zitat:
Habe die initialisierung nun aus der try-finally-anweisung raus geholt. Damit ihr noch ein wenig Spaß mit meinem Müll haben könnt will ich euch nun mal eine aktualisierung schicken ;)
Delphi-Quellcode:
Ich denke man merkt das ich ein blutiger Anfänger bin was Programmieren betrifft, ich mache noch viele Fehler aber ich bin dankbar das man mich auf solche Mängel hinweist und Lösungsvorschläge dafür abgebt :) Danke.
procedure TfrmMain.btLogInsClick(Sender: TObject);
var I, Zeile, Anzahl : Integer; LogInIni : TIniFile; Ein, Datum, DatumAusgelesen, Uhrzeit, Koordinaten, LogIns : string; sl1, sl2 : TStringlist; begin hLogInFenster := TfrmLogInAnzeige.Create(frmMain); hLogInFenster.Left := frmMain.Left + frmMain.Width + 20; hLogInFenster.Top := frmMain.Top; LogIns := ExtractFilePath(ParamStr(0)) + 'LogIns.ini'; LogInIni := TIniFile.Create(LogIns); for Zeile := 0 to hLogFenster.MemoLogAnzeige.Lines.Count-1 do begin ein := Utf8ToAnsi(hLogFenster.MemoLogAnzeige.Lines[Zeile]); if (pos(cbSpieler.Text, Ein) <> 0) AND (pos('logged in with entity id', ein) <> 0) then begin {*** Uhrzeit ***} for I := 12 to 19 do Uhrzeit := Uhrzeit + ein[I]; {*** Datum ***} DatumAusgelesen := leftStr(Ein,10); for I := 9 to 10 do Datum := Datum + DatumAusgelesen[I]; Datum := Datum + '.'; for I := 6 to 7 do Datum := Datum + DatumAusgelesen[I]; Datum := Datum + '.'; for I := 1 to 4 do Datum := Datum + DatumAusgelesen[I]; if hLogInFenster.cbLogins.Items.IndexOf( Datum ) < 0 then hLogInFenster.cbLogins.Items.Add(Datum); {*** Koordinaten ***} Koordinaten := copy(Ein, pos('(',Ein)+1,200); Delete(Koordinaten,pos(')',Koordinaten),1); {*** Eintragen des Datums, Uhrzeit und Koordinaten in die .ini ***} try LogInIni.WriteString(Datum, Uhrzeit, Koordinaten); finally end; //freigeben der LogInIni am Ende der Prozedur {*** Zurücksetzen der Variablen ***} Uhrzeit := ''; Datum := ''; Datumausgelesen := ''; end; end; Anzahl := 0; sl1 := TStringList.Create; sl2 := TStringList.Create; try LogInIni.ReadSections(sl1); for I := 0 to sl1.Count - 1 do begin LogInIni.ReadSectionValues(sl1.Strings[I], sl2); Anzahl := Anzahl + sl2.Count; end; hLogInFenster.Label1.Caption := IntToStr(Anzahl); hLogInFenster.Show; finally LogInIni.Free; sl1.Free; sl2.Free; end; end; |
AW: .ini Datei Schlüssel aller Abschnitte zählen
Deinen Code selbst als Müll zu bezeichnen klingt als ob Du die eine oder andere Antwort als Angriff verstanden haben könntest, gemeint war sicher keine so.
Um Erbsen zu zählen .... Ich würde das Erzeugen von sl1 und sl2 direkt nach LogInIni := TIniFile.Create(LogIns); einfügen und im Anschluss das TRY "öffnen" |
AW: .ini Datei Schlüssel aller Abschnitte zählen
Nein so meinte ich es nicht, nur im Vergleich zu dem was ihr mir hier "mal eben so aus dem Ärmel zaubert, es ist wohl wirklich das günstigste die Creates nacheinander zu nehmen und anschliessend ein try zu setzen.
Nochmals vielen Dank für eure Hilfen :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:04 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