![]() |
Strings rückwärts "gehen"
Hallo
Ich versuche ein paar strings von der gefundene stelle rückwaärts zu gehen warum geht das nciht? könnte mir da mal bitte jemand helfen?
Delphi-Quellcode:
es ist von der datei her so das sie bei [2] mit einträgen anfängt
procedure TFMain.Datei_durchsuchen;
var zaehlen, top, j, i, found:integer; Shandling, Suser_time, Scode_letter, Sreturn_code: string; begin found := 0; zaehlen := 1; top := 60; for I := 0 to my_file.Count - 1 do begin // Jede Zeile nach dem Benutzernamen durchsuchen found := Pos('java.lang.String userName="'+EUsername.Text+'",', my_file.Strings[I]); if found <> 0 then begin Suser_time := my_file.Strings[found - 32]; //<--- hier "LISTENINDEX ÜBERSCHREITET DAS MAXIMUM (-31)" for J := 0 to 19 do Suser_time := Suser_time + Suser_time[J]; Ldatum_out[zaehlen].Caption := Suser_time; Ldatum_out[zaehlen].Top := top; Ldatum_out[zaehlen].Width := Ldatum.Width; Ldatum_out[zaehlen].left := Ldatum.left; end; top := top + 40; zaehlen := zaehlen + 1; end; end; [0] und [1] sind leer und der gefundene eintrag (nach dem ich suchen muss) ist immer bei [34] Tigermoon |
Re: Strings rückwärts "gehen"
1. Was ist für ein Typ "my_file" TStringList? TStrings?
2. probier mal anstatt
Delphi-Quellcode:
for i:= 0 to x do
Delphi-Quellcode:
for i:= x downto 0 do
|
Re: Strings rückwärts "gehen"
Zitat:
die zeile setze ich in der zeile obendrüber fest bei
Delphi-Quellcode:
ist der fehler
Suser_time := my_file.Strings[found - 32];
es ist eine tstringlist!!! |
Re: Strings rückwärts "gehen"
Zitat:
|
Re: Strings rückwärts "gehen"
Listenindex überstreitet maximum (-31)
|
Re: Strings rückwärts "gehen"
Zitat:
Der letzte Index ist normalerweise TStringlist.Count-1; mfg mr47 |
Re: Strings rückwärts "gehen"
Delphi-Quellcode:
Logisch, dass du da nen Fehler kriegst. ;)
Suser_time := my_file.Strings[found - 32];
Mit my_file.Strings[bla] erhältst du das, was in Zeile Nummer bla - 1 steht. Du durchsuchst die einzelnen Zeilen mit Pos() nach deinem String. Du müsstest also oben genannte Zeile durch
Delphi-Quellcode:
Mit [ i ] hast du die Zeile i und mit [found-32] hast du das Zeichen, das an Stelle found - 32 steht.
Suser_time := myFile.Strings[i][found - 32]
Dann müsste das klappen. Allerdings vermute ich mal, dass Suser_time nicht nur ein Zeichen beinhalten soll, sondern einige Zeichen von found - 32 an gezählt, oder? In dem Fall müsstest du mit ![]() |
Re: Strings rückwärts "gehen"
die lösung war
eine andere art von suche benutzen nd zwar my_file.indexof(..) dann kann man vorwärts und rückwarts
Delphi-Quellcode:
danke für euere hilfe
procedure TFMain.Datei_durchsuchen;
var zaehlen, top, j, i, found:integer; Shandling, Suser_time, Scode_letter, Sreturn_code, temp: string; begin found := 0; zaehlen := 1; top := 60; while zaehlen <= 1 do begin // Zeilen nach dem Benutzernamen durchsuchen found := my_file.IndexOf('java.lang.String userName="'+EUsername.Text+'",'); if found <> 0 then begin Temp := my_file.Strings[found - 32]; for J := 1 to 19 do Suser_time := Suser_time + Temp[J]; Ldatum_out[zaehlen].Caption := Suser_time; Ldatum_out[zaehlen].Top := top; Ldatum_out[zaehlen].Width := 130; Ldatum_out[zaehlen].left := Ldatum.left; end; top := top + 40; zaehlen := zaehlen + 1; end; end; Tigermoon |
tstringlist öfter durchlaufen
hallo
wie kann ich eine tstringlist mit dem befeht indexof() öfter durchlaufen weil das nachdem ich suche kann es mehrmals geben habt ihr ne idee? Tigermoon |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:05 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