AGB  ·  Datenschutz  ·  Impressum  







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

TStringlist wird falsch gespeichert

Ein Thema von Jiro · begonnen am 12. Dez 2009 · letzter Beitrag vom 12. Dez 2009
Antwort Antwort
Jiro

Registriert seit: 12. Mär 2008
Ort: Hannover
77 Beiträge
 
Delphi 7 Personal
 
#1

TStringlist wird falsch gespeichert

  Alt 12. Dez 2009, 15:18
Hallo Leute,
Ich habe mal wieder ein Problem, aber erstmal zu meinem Programm bzw. den Teilen, die bei meinem Problem eine Rolle spielen.
Und zwar habe ich:
Eine TListBox
Eine TStringList
Eine .txt Datei

Beim öffnen des Programms sollen alle Inhalte der Textdatei erst in eine TStringlist und von da aus in die ListBox kopiert werden.
Soweit klappt das auch, in der ListBox ist ein Eintrag.
Beim Beenden des Programms sollen alle Einträge der ListBox wieder in die Datei geschrieben werden (überschreiben).
Ich weiß nicht, woran das liegt allerdings habe ich nach dem 3. Programmstart auf einmal 2x den Eintrag in der Box, ohne etwas zu tun.

Delphi-Quellcode:
procedure Tmainwindow.FormCreate(Sender: TObject);
begin
      playliste:=TStringList.Create;
      playliste.LoadFromFile('videoliste.txt');
      playlist.Items.AddStrings(playliste);
end;

procedure Tmainwindow.FormClose(Sender: TObject; var Action: TCloseAction);
begin
          playliste.AddStrings(playlist.Items);
          deletefile('videoliste.txt'); // Eingebaut, damit die Datei auch sicher überschrieben wird.
          playliste.SaveToFile('videoliste.txt');
end;
Die Datei wird beim schließen auch gelöscht und neu erstellt, aber trotzdem werden 2 Einträge gespeichert!
Niklas
  Mit Zitat antworten Zitat
Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: TStringlist wird falsch gespeichert

  Alt 12. Dez 2009, 15:25
Mach mal im Close vorher noch ein playliste.Clear; rein. Ich vermute, dass da noch was drinsteht, bevor du per AddStrings etwas hinzufügst.

Edit: Das DeleteFile ist gar nicht nötig, das SaveToFile überschreibt die alte Datei sowieso.
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: TStringlist wird falsch gespeichert

  Alt 12. Dez 2009, 15:27
Du kannst Dir doch komplett den Umweg über die Stringliste sparen, und das 'DeleteFile' auch.
Da MyListBox.Items ein TStrings-Objekt ist, kannst Du direkt dessen LoadFromFile/SaveToFile-Methoden verwenden.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Jiro

Registriert seit: 12. Mär 2008
Ort: Hannover
77 Beiträge
 
Delphi 7 Personal
 
#4

Re: TStringlist wird falsch gespeichert

  Alt 12. Dez 2009, 15:33
Danke, hat so funktioniert (sowohl mit Clear als auch ganz ohne StringList).
Allerdings hab ich jetzt das nächste Problem. Und zwar möchte ich beim Laden in die Playliste prüfen, ob der Eintrag schon vorhanden ist.
Delphi-Quellcode:
     for playlistcheck := 0 to playlist.Count -1 do
        if opendialog.Filename<>playlist.Items[vidname] then
           begin
             playlist.Items.AddStrings(opendialog.Files);
           end
        else
     showmessage('Schon vorhanden!');
Wenn in der Playliste schon ein Eintrag vorhanden ist und ich den selben nochmal hinzufügen möchte, kommt die Meldung.
Wenn aber gar kein Eintrag vorhanden ist, passiert gar nichts. Woran liegt das schon wieder?
Niklas
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: TStringlist wird falsch gespeichert

  Alt 12. Dez 2009, 16:23
mach bitte für die neue Frage ein neues Thema auf.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  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 11:56 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