AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Probleme mit StringList und for schleifen
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit StringList und for schleifen

Ein Thema von agm65 · begonnen am 29. Jun 2005 · letzter Beitrag vom 29. Jun 2005
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#1

Probleme mit StringList und for schleifen

  Alt 29. Jun 2005, 20:19
guten abend leute...
hab mal wieder ne nachschicht vor mir, hoffentlich sind heute nacht genug online !
nun zu meinem problem:
also ich habe 2 stringlist global definiert

Delphi-Quellcode:
var
sl: TStringList;
sl2: TStringList;


tform1.formcreate;
begin
sl:=TStringList.Create;
sl2:=TStringList.Create;

//file 1 von 49
sl.Add(ExtractFilePath(ParamStr(0)) + 'dir\file1.txt');
sl2.Add('ini.ReadString(''File1'', ''KEY'','''')');

//file 2 von 49
sl.Add(ExtractFilePath(ParamStr(0)) + 'dir\file2.txt');
sl2.Add('ini.ReadString(''File1'', ''KEY'','''')');

end;

tform.button1click;
var
i:integer;
begin
 try
  for i := 0 to sl.count -1 do
     begin
     sl.LoadFromFile(sl.Strings[i]));
     edit1.text := sl.count;
     sl.clear;
     end;
end;
ich bekomme ne fehlermeldung, dass ich nen maximum wert überschritten habe ?
aber wieso ? habe schon sehr viel ausprobiert ....ca 8 stunden ....erbitte hilfe !

[edit=Sharky]Code-Tags durch Delphi-Tags ersetzt. Mfg, Sharky[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Probleme mit StringList und for schleifen

  Alt 29. Jun 2005, 20:22
Zitat von agm65:
.
.
Code:
  for i := 0  to sl.count -1 do
     begin
     sl.LoadFromFile(sl.Strings[i]));
.
end;
Du darfst nicht in einer Schleife welche die Items deiner StringList sl durchläuft diese verändern.
Durch das sl.LoadFromFile ändert sich ja die Anzahl der "Zeilen" in der StringListe!
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Probleme mit StringList und for schleifen

  Alt 29. Jun 2005, 20:29
also erstelle ich für diese procedure einen neue stringliste ?
Code:
tform.button1click;
var
i:integer;
sl3: TStringList;
begin
sl3.create;
try
  for i := 0  to sl.count -1 do
     begin
     sl3.LoadFromFile(sl.Strings[i]));
     edit1.text := sl.count;
     sl.clear;
     end;
end;
macht leider auch fehler !
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#4

Re: Probleme mit StringList und for schleifen

  Alt 29. Jun 2005, 20:31
Delphi-Quellcode:
for i := 0 to sl.count -1 do
     begin
     sl.LoadFromFile(sl.Strings[i]));
     edit1.text := sl.count;
     sl.clear;
     end;
Hier fällt mir außerdem auf, dass am Ende jedes Schleifendurchlauf die StringListe geleert wird, wodurch beim nächsten Aufurf nicht mehr von sl.Strings[i] gelesen werden kann. Logischerweise

Nachtrag: Warum speicherst du nicht Sl.Count - 1 in einer Variableß

//edit: Edit1.Text := sl.Count funktioniert auch nicht, da du ja einen Integerwert in einen String schreiben willst. Wenn du das machen willst, musst du zuvor mit Delphi-Referenz durchsuchenIntToStr Sl.Count umwandeln (wenn du wirklich die Zahl reinschreiben willst).
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Probleme mit StringList und for schleifen

  Alt 29. Jun 2005, 20:31
Zitat von agm65:
also erstelle ich für diese procedure einen neue stringliste ?
Was möchtest Du denn machen? So wie der Code aussieht hast Du in einer StringListe Dateinamen und möchtest jetzt wissen wie viele Zeilen jede dieser Dateien hat?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#6

Re: Probleme mit StringList und for schleifen

  Alt 29. Jun 2005, 20:33
hi,

also ich stimme erstens mal Sharky zu.
aber noch was:
Zitat:
edit1.text := sl.count;
das geht doch gar nicht!
richtig wäre es so:
edit1.text := inttostr(sl.count); erklär mal dein vorhaben etwas genauer...

P.S. eventuell musst du eine dritte stringlist verwenden, um die dateinamen zu speichern.
  Mit Zitat antworten Zitat
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#7

Re: Probleme mit StringList und for schleifen

  Alt 29. Jun 2005, 20:35
mit einer dritten stringlist müsste das etwa so aussehen:
Delphi-Quellcode:
s3.strings := s1.strings;
for i := 0 to s3.count -1 do
     begin
     sl.LoadFromFile(s3.Strings[i]));
     edit1.text := sl.count;
     sl.clear;
     end;
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Probleme mit StringList und for schleifen

  Alt 29. Jun 2005, 20:37
genau wartet mal ich behebe die dummen fehler !
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#9

Re: Probleme mit StringList und for schleifen

  Alt 29. Jun 2005, 20:39
Zitat von urbanbruhin:
mit einer dritten stringlist müsste das etwa so aussehen:
Delphi-Quellcode:
s3.strings := s1.strings;
for i := 0 to s3.count -1 do
     begin
     sl.LoadFromFile(s3.Strings[i]));
     edit1.text := sl.count;
     sl.clear;
     end;
Warum denn so?

Da wird doch nur unnötig Speicher verbraucht, weil eine Stringliste komplett kopiert wird. Man könnte ja gleich die Daten aus s1 in s3 speichern. So, wie es agm65 auch im Beispiel gepostet hat.


PS: Doppelposts sind ja nicht nötig, oder? Du kannst auch deine Beiträge editieren
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Probleme mit StringList und for schleifen

  Alt 29. Jun 2005, 20:43
Code:
tform.button1click;
var
i:integer;
sl3: TStringList;
begin
sl3.create;
try
  for i := 0  to sl.count -1 do
     begin
     sl3.LoadFromFile(sl.Strings[i]));
     edit1.text := inttostr(sl3.count);
     sl3.clear;
     end;
end;
das macht auch fehler, exception zugriffs verletzung
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 01:48 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