AGB  ·  Datenschutz  ·  Impressum  







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

Probleme mit TStringList.Add?

Ein Thema von mjenke · begonnen am 19. Mai 2003 · letzter Beitrag vom 13. Nov 2003
Antwort Antwort
mjenke

Registriert seit: 28. Mär 2003
Ort: Bonn
131 Beiträge
 
#1

Probleme mit TStringList.Add?

  Alt 19. Mai 2003, 07:15
Hallo, alle miteinander!

Ich habe in den letzten Tagen mehrfach ein Phänomen erlebt, das ich mir nicht erklären kann. Wenn ich versucht habe, einem Objekt vom Typ TStringList einen neuen Eintrag zuzufügen, ist es mitunter einfach nicht aufgenommen worden. Dies geschah in einer Schleife. Ich habe eine Textdatei analysiert und wollte verschiedene Strings in einer StringList speichern.

Die StringListe hat aber bei weitem nicht alle Strings enthalten, die sie hätte enthalten müssen.

Habe ich dagegen mit dynamischen Arrays gearbeitet, gab es keinerlei Probleme.

Mit anderen Worten:
Delphi-Quellcode:
Liste := TStringList.Create;
for counter := 0 to Anzahl do begin
  Liste.Add(Eintrag[counter]);
end;
bereitet mir Probleme, wohingegen:
Delphi-Quellcode:
SetLength(DynArray,0);
int_counter := 0;
for counter := 0 to Anzahl do begin
  SetLength(DynArray,int_counter+1);
  DynArray[counter] := Eintrag[counter];
  Inc(int_counter);
end;
funktioniert. Das Array ist offensichtlich umständlicher, und wenn ich schon ein Objekt in Form einer Liste haben, wollte ich es auch nutzen.

Ist mir sowohl mit Delphi 4 Enterprise als auch mit Delphi 5 Professional passiert.

Kennt jemand dieses Phänomen? Kann man da etwas unternehmen?


Matthias

[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]
Matthias Jenke
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#2
  Alt 19. Mai 2003, 08:10
Hallo mjenke
ist Eintrag auch eine StringList? wenn ja, müßte es heißen
for counter := 0 to Anzahl - 1 do begin ansonsten kenne ich das Problem nicht
bye

[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#3
  Alt 19. Mai 2003, 08:18
Hallo mjenke,
muß mich nochmal korrigieren, bin noch nicht wach!
for Counter := 0 to Eintrag.Count - 1 do begin dann sollten alle Strings dasein!

[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Gaius

Registriert seit: 25. Feb 2003
Ort: Frankfurt
9 Beiträge
 
Delphi 7 Enterprise
 
#4
  Alt 19. Mai 2003, 09:50
Hallo,

steht vielleicht die Eigenschaft Duplicates auf dupIgnore?
Dann werden keine Duplikate angelegt.

Tschüss
  Mit Zitat antworten Zitat
mjenke

Registriert seit: 28. Mär 2003
Ort: Bonn
131 Beiträge
 
#5
  Alt 19. Mai 2003, 10:12
@Duffy:
Eintrag ist keine StringList. Eintrag ist ein Array von der Grösse Anzahl. Das ganze ist kein echter Code, sondern nur die Zusammenfassung des Problems. Ich hätte die Zeile auch
for counter := 0 to Length(Eintrag)-1 do begin schreiben können. Aber das ist nicht der Kern des ganzen. Die Liste beinhaltet die hinzugefügten Strings einfach nicht...

@Gaius:
Nein. Duplicates steht nicht auf dupIgnore. Ausserdem wären es auch keine Duplikate. Ich habe noch keine Regelmässigkeit darin entdeckt, welche Einträge nicht aufgenommen werden...

Trotzdem danke für die Vorschläge...

Matthias

[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]
Matthias Jenke
  Mit Zitat antworten Zitat
Benutzerbild von Ricane
Ricane

Registriert seit: 21. Mär 2003
Ort: Quickborn
170 Beiträge
 
Delphi 7 Architect
 
#6

Re: Probleme mit TStringList.Add?

  Alt 13. Nov 2003, 10:19
Moin,

ich habe genau das gleich Problem; also das der Add Befehl für die StringList einfach nicht angenommen wird...

Ich habe eine Liste die CARS heisst. Diese habe ich ordentlich erstellt mit dem Create Befehl erstellt. Wenn ich per Add Befehl dann etwas einfügen will, ist der Eintrag aber einfach nicht drin... Das Result von dem Add Befehl ist nicht -1, also sollte es eigentlich geklappt haben... hat es aber nicht... hier noch mal die Übersicht der Befehle!

Delphi-Quellcode:
    Cars := TStringList.Create;
    Umweg := FAdo.AQFHZ.FieldByName('ID').AsString;
    Cars.Add(Umweg);
Natürlich habe ich auch schon versucht das ganze ohne die Umweg-Variable zu machen, welche vom Typ String ist, aber das klappt auch nicht. Die Umweg-Variable ist gefüllt.

Any Ideas?!


Grüsse,

Ricane
Hendrik
So much to Code... so less Time....

www.RicaneSoftware.de
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Probleme mit TStringList.Add?

  Alt 13. Nov 2003, 10:50
kann es vielleicht sein, daß ihr leere Strings in die TStringList
füllt und beim Lesen halt zwischendurch nix angezeigt bekommt,
weil eben halt nix zu sehen ist?

macht doch mal ne Überprüfung auf leere strings drumherum
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Benutzerbild von Ricane
Ricane

Registriert seit: 21. Mär 2003
Ort: Quickborn
170 Beiträge
 
Delphi 7 Architect
 
#8

Re: Probleme mit TStringList.Add?

  Alt 13. Nov 2003, 11:21
Nee, die Zeilen laufen ja direkt so ab... da sind nirgendswo noch leere Strings dazwischen...

Ach ja, eine Zeile hab´ ich im oberen Code noch vergessen... Sie müsste zwischen der ersten und der zweiten Zeile stehen und lautet:

  Cars.Clear;
Hendrik
So much to Code... so less Time....

www.RicaneSoftware.de
  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 20:34 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