AGB  ·  Datenschutz  ·  Impressum  







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

TStringlist leert sich Selbst!

Ein Thema von danu1104 · begonnen am 7. Mär 2012 · letzter Beitrag vom 8. Mär 2012
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: TStringlist leert sich Selbst!

  Alt 8. Mär 2012, 05:55
Evtl. ist der Delimiter ungeschickt gewählt, weil sich das mit dem NameValueSeparator beißt.

Versuch es mal mit dieser Änderung - die function lasse ich jetzt mal untouched:
Delphi-Quellcode:
var
varvalue:TStringlist;
varvalueex:TStringlist;

...

  VarValue:=TStringlist.Create;

  VarValueEx:=TStringlist.Create;
  // VarValueEx.Delimiter:='=';

  varvalue.Values['test'] := 'hallo';
  // und hier ist sie wieder leer ich weiss es nicht zuletzt weil ls.dat 0KB gross ist.
  // Achja, dass Project Ist eine DLL
  varvalue.SaveToFile('c:\ls.dat');
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
danu1104

Registriert seit: 4. Dez 2006
75 Beiträge
 
Delphi 2006 Personal
 
#2

AW: TStringlist leert sich Selbst!

  Alt 8. Mär 2012, 08:12
Ich habe jetzt


Delphi-Quellcode:
try
 test() ....
except
  On e : EStringlistError do
 end;
entfernt , und das Resultat ist das die listen jetzt voll bleiben (juhuu) , doch habe ich den EStringlistError der mir die App immer crasht.

unter var deklariere ich die stringlisten create sie dort wo sie gebraucht werden und schliesse sie am ende der Function wieder. Deswegen kann ich den fehler nicht nachvollziehen. Ich habe nur diese 2 - 3 Stringlisten, und ich habe noch nie diesen fehler gehabt, seit ich mit delphi arbeite ....
Daniel
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: TStringlist leert sich Selbst!

  Alt 8. Mär 2012, 08:31
Böses böses Speichern unter C:\.

Win Vista/7 wird das verhindern (Keine Schreibzugriff) bzw. in den Virtuellen Store Umschieben so das du deine Änderungen im Windows Explorer unter C:\ nicht sieht.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
danu1104

Registriert seit: 4. Dez 2006
75 Beiträge
 
Delphi 2006 Personal
 
#4

AW: TStringlist leert sich Selbst!

  Alt 8. Mär 2012, 08:43
Böses böses Speichern unter C:\.

Win Vista/7 wird das verhindern (Keine Schreibzugriff) bzw. in den Virtuellen Store Umschieben so das du deine Änderungen im Windows Explorer unter C:\ nicht sieht.
System Festplate ist I:\ , c:\ ist meine backup platte
Daniel
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: TStringlist leert sich Selbst!

  Alt 8. Mär 2012, 09:23
System Festplate ist I:\ , c:\ ist meine backup platte
Und wie hast du das hin bekommen?
Ab Vista sorgt doch der Installer von Windows dafür das für Windows die Systemplatte immer C:\ ist egal welche Partition/Platte es physikalisch ist
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
danu1104

Registriert seit: 4. Dez 2006
75 Beiträge
 
Delphi 2006 Personal
 
#6

AW: TStringlist leert sich Selbst!

  Alt 8. Mär 2012, 09:33
System Festplate ist I:\ , c:\ ist meine backup platte
Und wie hast du das hin bekommen?
Ab Vista sorgt doch der Installer von Windows dafür das für Windows die Systemplatte immer C:\ ist egal welche Partition/Platte es physikalisch ist
Habe Windows XP drauf, und hatte vorher Ubuntu auf der 80er Platte, die 80er habe ich formatiert und die 500GB natürlich nicht, seit dem ist System Laufwerk bei mir I:\ weil die 500GB bei der Installation bereits als C:\ angezeigt wurde , daher hat er auf I:\ gemacht (nicht zuletzt weil ich Card Reader laufwerke habe)
Daniel
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.780 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: TStringlist leert sich Selbst!

  Alt 8. Mär 2012, 08:31
.. wo kommt denn diese Funktion zum Einsatz?

Delphi-Quellcode:
function getvarval(str:Pchar):Pchar;
var ic:Integer;
begin
  varvalue.LoadFromFile('c:\ls.dat');
  varvalueex.DelimitedText:= varvalue.text;
  for ic:=0 to varvalueex.Count -1 do
   if VarValueex.Strings[ic] = str then Begin
    result:=Pchar(VarValueex.Strings[ic+1]);
    Break;
   end;
   showmessage(VarValueEx.Text)
end;
Ich würde die StringList auch als Parameter übergeben.

Delphi-Quellcode:
function getvarval(var myStringList: TStringList;str:Pchar):Pchar;
 var ic:Integer;
 sl : TStringList;
begin
  if assigned(myStringList) then
    begin
      sl := TStringList.create;
      try
         sl.LoadFromFile('c:\ls.dat');
         myStringList.DelimitedText:= sl.Ttext;
         for ic:=0 to myStringList.Count -2 do
           if myStringList.Strings[ic] = str then
             Begin
               result:=Pchar(myStringList.Strings[ic+1]);
               Break;
             end;
          showmessage(myStringList.Text)
      finally
        sl.free;
      end;
    end;
end;
Grüße
Klaus
Klaus

Geändert von Klaus01 ( 8. Mär 2012 um 08:34 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.960 Beiträge
 
Delphi 12 Athens
 
#8

AW: TStringlist leert sich Selbst!

  Alt 8. Mär 2012, 08:59
Ich würde die StringList auch als Parameter übergeben.
Aber sinnvoller wäre das nicht als var-Parameter zu machen. Schließlich übergibst du dann einen Pointer auf einen Pointer, da die TStringList ja schon selbst ein Pointer auf das Objekt ist.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.372 Beiträge
 
Delphi 12 Athens
 
#9

AW: TStringlist leert sich Selbst!

  Alt 8. Mär 2012, 09:15
.. wo kommt denn diese Funktion zum Einsatz?

Ich würde die StringList auch als Parameter übergeben.

function getvarval(var myStringList: TStringList;str:Pchar):Pchar;
Es geht um eine DLL-Funktion.

Solange er nicht mit Laufzeitpackages kompiliert, würde ich davon eher abraten, Objekte über RTTI-Grenzen hinweg zu übergeben.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.074 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: TStringlist leert sich Selbst!

  Alt 8. Mär 2012, 08:32
unter var deklariere ich die stringlisten create sie dort wo sie gebraucht werden und schliesse sie am ende der Function wieder. Deswegen kann ich den fehler nicht nachvollziehen. Ich habe nur diese 2 - 3 Stringlisten, und ich habe noch nie diesen fehler gehabt, seit ich mit delphi arbeite ....
Wenn man Beiträge dreimal Lesen muss, damit man etwas versteht, fehlt es an allen grundlegenen Kenntnissen der deutschen Rechtschreibung!

Die Lösung wurde im vierten Post in diesen Thread genannt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 00:00 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