es tut mir leid aber das funktioniert immer noch nicht >.> ich hau hier jetzt einfach mal den ganzen quelltext samt fehlermeldung die dabei entsteht rein
(Ja ich weiß ich hab ne komische Art der Sortierung...):
Delphi-Quellcode:
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;
for Zeile := 0 to hLogFenster.MemoLogAnzeige.Lines.Count-1 do begin
ein := Utf8ToAnsi(hLogFenster.MemoLogAnzeige.Lines[Zeile]);
if (pos(cbSpieler.Text, Ein) <> 0) //In einer TCombobox eingetragener Wert
AND (pos('logged in with entity id', ein) <> 0) //Ein weiteres "SuchWort" im Text
then begin
{*** Uhrzeit ***}
for I := 12 to 19 do Uhrzeit := Uhrzeit + ein[I];
DatumAusgelesen := leftStr(Ein,10);
{*** Datum ***}
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];
hLogInFenster.cbLogins.Items.Add(Datum); //eintragen der Daten in eine TCombobox
{*** Koordinaten ***}
Koordinaten := copy(Ein, pos('(',Ein)+1,200);
Delete(Koordinaten,pos(')',Koordinaten),1);
{*** Eintragen des Datums, Uhrzeit und Koordinaten in die .ini ***}
try LogIns := ExtractFilePath(ParamStr(0)) + 'LogIns.ini';
LogInIni := TIniFile.Create(LogIns);
LogInIni.WriteString(Datum, Uhrzeit, Koordinaten);
finally LogInIni.Free; end;
{*** Zurücksetzen der Variablen ***}
Uhrzeit := ''; Datum := ''; Datumausgelesen := '';
end;
{*** Löschen doppelter Einträge ***}
for I := 0 to hLogInFenster.cbLogIns.Items.Count - 1 do
if hLogInFenster.cbLogIns.Items[i] = hLogInFenster.cbLogIns.Items[i+1]
then hLogInFenster.cbLogIns.Items.Delete(i);
end;
{****** Hier hat das Programm Probleme ... *****}
sl1 := TStringList.Create; sl2 := TStringList.Create;
Anzahl := 0;
LogInIni.ReadSections(sl1);
for I := 0 to sl1.Count - 1 do begin
LogInIni.ReadSection(sl1.Strings[I], sl2); // Ich denke mal hier liegt das Problem mit Schreiben nach sl2
Anzahl := Anzahl + sl2.Count;
end;
hLogInFenster.Label1.Caption := IntToStr(Anzahl);
{****** *****}
hLogInFenster.Show;
end;
Ich denke mal der Fehler taucht an der Stelle auf wo ich
LogInIni.ReadSection(sl1.Strings[I], sl2);
eintragen lasse, da er in der Klammer TStrings haben möchte, sl2 aber eine TStringList ist.
Wenn ich das so Laufen lasse gibts als Anzahl 0 zurück, wenn ich
LogInIni.ReadSectionValues(sl1[I], sl2);
mache gibts die angehängte Fehlermeldung.
Vielen Dank für die ersten Hilfen schonmal