Wenn ich den Bekannten ReadString zum Auslesen einer Textzeile anwende, habe ich Diesmal das kleine Problem, das keine werte übernommen werden, bzw nur ein wert der kompletten Liste.
Da ich a) nur max 255 Zeilen zulassen will, habe ich den Zähler auf diesen wert angesetzt, ergo diese SChleife kommt zum Einsatz.
Code: Alles auswählen
for Count:= 1 to 255 do
begin
fStringList.Add(ReadString(s, 'UserList'+intToStr(Count), ''));
end;
HIer zur verdeutlichung die vollständige Function.
Code: Alles auswählen
function TUser.GetUserList: TStringlist;
var s: String;
Count: Byte;
begin
fFilename:= Format('%s%s', [fPath, fExt2+'.'+fList]);
if FileExists(fFilename) then begin
// Userliste Laden
S:= Format('%s', [fList]);
Temps:= S;
with TIniFile.Create(fFilename) do try
{ repeat
inc(Count)
until ;}
for Count:= 1 to 255 do
begin
fStringList.Add(ReadString(s, 'UserList'+intToStr(Count), ''));
end;
finally
Free;
end;
end;
Result:= fStringList;
end;
Hier noch zur Manuellen Durchspielen das listung, welche gelesen werden soll.
- [[UserList]]
- UserList1=Maxim Mustermann
- UserList2=Maik Geßner
Habe gerade mal die function Wie folgt umgeschrieben auch mit meinem Lieblinggebugger. ^^
Code: Alles auswählen
function TUser.GetUserList: TStringlist;
var s: String;
Count: Byte;
begin
Count:= 0;
fFilename:= Format('%s%s', [fPath, fExt2+'.'+fList]);
if FileExists(fFilename) then begin
// Userliste Laden
S:= Format('%s', [fList]);
// Temps:= S;
with TIniFile.Create(fFilename) do try
repeat
fStringList.Add(ReadString(s, 'UserList'+intToStr(Count), ''));
inc(Count);
until fStringList[Count] = '';
TempS:= fStringList[Count] + IntToStr(Count);
{ for Count:= 1 to 255 do
begin
fStringList.Add(ReadString(s, 'UserList'+intToStr(Count), ''));
end;}
finally
Free;
end;
end;
Result:= fStringList;
end;