AGB  ·  Datenschutz  ·  Impressum  







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

Strings rückwärts "gehen"

Offene Frage von "Tigermoon"
Ein Thema von Tigermoon · begonnen am 16. Nov 2005 · letzter Beitrag vom 16. Nov 2005
Antwort Antwort
Tigermoon

Registriert seit: 11. Mär 2005
Ort: Baumholder
100 Beiträge
 
Delphi 7 Enterprise
 
#1

Strings rückwärts "gehen"

  Alt 16. Nov 2005, 14:04
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:
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;
es ist von der datei her so das sie bei [2] mit einträgen anfängt
[0] und [1] sind leer
und der gefundene eintrag (nach dem ich suchen muss) ist immer bei [34]

Tigermoon
Stephanie
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Strings rückwärts "gehen"

  Alt 16. Nov 2005, 14:11
1. Was ist für ein Typ "my_file" TStringList? TStrings?
2. probier mal anstatt
for i:= 0 to x do for i:= x downto 0 do
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Tigermoon

Registriert seit: 11. Mär 2005
Ort: Baumholder
100 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Strings rückwärts "gehen"

  Alt 16. Nov 2005, 14:15
Zitat von Angel4585:
1. Was ist für ein Typ "my_file" TStringList? TStrings?
2. probier mal anstatt
for i:= 0 to x do for i:= x downto 0 do
in dem teil gehe ich die buchstaben durch
die zeile setze ich in der zeile obendrüber fest

bei Suser_time := my_file.Strings[found - 32]; ist der fehler

es ist eine tstringlist!!!
Stephanie
  Mit Zitat antworten Zitat
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Strings rückwärts "gehen"

  Alt 16. Nov 2005, 14:19
Zitat von Tigermoon:
bei Suser_time := my_file.Strings[found - 32]; ist der fehler
Der da wäre?
  Mit Zitat antworten Zitat
Tigermoon

Registriert seit: 11. Mär 2005
Ort: Baumholder
100 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Strings rückwärts "gehen"

  Alt 16. Nov 2005, 14:20
Listenindex überstreitet maximum (-31)
Stephanie
  Mit Zitat antworten Zitat
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Strings rückwärts "gehen"

  Alt 16. Nov 2005, 14:23
Zitat von Tigermoon:
Listenindex überstreitet maximum (-31)
Das bedeutet das du einen Index angesprochen hast, den es nicht gibt. -32 gibt's wohl nicht mehr! Normalerweise sind die Indizes positiv! Ich seh jetzt grad net wie groß "found" ist!
Der letzte Index ist normalerweise

TStringlist.Count-1;

mfg mr47
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Strings rückwärts "gehen"

  Alt 16. Nov 2005, 14:26
Suser_time := my_file.Strings[found - 32]; Logisch, dass du da nen Fehler kriegst.
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
Suser_time := myFile.Strings[i][found - 32] Mit [ i ] hast du die Zeile i und mit [found-32] hast du das Zeichen, das an Stelle found - 32 steht.

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 Delphi-Referenz durchsuchencopy arbeiten
Julian J. Pracht
  Mit Zitat antworten Zitat
Tigermoon

Registriert seit: 11. Mär 2005
Ort: Baumholder
100 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Strings rückwärts "gehen"

  Alt 16. Nov 2005, 14:59
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:
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;
danke für euere hilfe

Tigermoon
Stephanie
  Mit Zitat antworten Zitat
Tigermoon

Registriert seit: 11. Mär 2005
Ort: Baumholder
100 Beiträge
 
Delphi 7 Enterprise
 
#9

tstringlist öfter durchlaufen

  Alt 16. Nov 2005, 15:01
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
Stephanie
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:23 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