AGB  ·  Datenschutz  ·  Impressum  







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

TStringlist wie TIniFile

Ein Thema von LoL · begonnen am 22. Mär 2005 · letzter Beitrag vom 28. Mär 2005
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#11

Re: TStringlist wie TIniFile

  Alt 22. Mär 2005, 12:04
Die Daten werden intern einer THashedStringList gespeichert und das UpdateFile wird nur bei einer normalen TIniFile beim Freigeben aufgerufen, damit sollte es also keine Probleme geben. Hab noch nen Beispiel gemacht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  fIni: TMemIniFile;
  fStrings: TStrings;
begin
  fIni := TMemIniFile.Create('');
  try

    fStrings := TStringList.Create;
    try
      fStrings.Add('[test_section]');
      fStrings.Add('testkey=testvalue');

      //Stringliste übertragen
      fIni.SetStrings(fStrings);
    finally
      fStrings.Free;
    end;

    ShowMessage(fIni.ReadString('test_section', 'testkey', ''));

  finally
    fIni.Free;
  end;
end;
  Mit Zitat antworten Zitat
LoL
(Gast)

n/a Beiträge
 
#12

Re: TStringlist wie TIniFile

  Alt 22. Mär 2005, 15:01
Ich hab mich nun doch entschieden meine eigene Stringliste abzuleiten.
Dazu habe ich folgendes Probiert:

Delphi-Quellcode:
function TdddStringlist.ReadString(Section, Value, Default : String) : String;
var i, j : integer;
begin
  Result := Default;
  if Count > 0 then
    for i := 0 to Count - 1 do
      if copy(Strings[i],2,Length(Strings[i])-2) = Section then
        for j := i + 1 to Count - 1 do
          if copy(Strings[j],0,pos('=',Strings[j]) - 1) = Value then
            begin//Edit
              Result := copy(Strings[j],pos('=',Strings[j]) + 1,length(Strings[j]));
              break;//Edit
            end;//Edit
end;
kann man das so machen oder übersehe ich da was und es ist doch kompliziereter?
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 17. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: TStringlist wie TIniFile

  Alt 22. Mär 2005, 17:54
Zitat von LoL:
Ich hab mich nun doch entschieden meine eigene Stringliste abzuleiten.
Überraschend.
Ich, der das anfangs sogar vorgeschlagen hatte, war da mittlerweile fast schon wieder von ab.

Zitat von LoL:
kann man das so machen oder übersehe ich da was und es ist doch kompliziereter?
Nein, ja, ja.

Bei folgender Liste ...
Code:
[Sec1]
key1=val1
key2=val2
key3=val3
[Sec2]
key4=val4
key5=val5
... würde ...ReadString('Sec1','key4','SCHADE'); ... val4 zurückliefern, was falsch ist. Eine Section hört mit dem Beginn der nächsten auf (oder, wenn keine danach folgt, am Listenende).
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#14

Re: TStringlist wie TIniFile

  Alt 22. Mär 2005, 18:10
Ich denke, dass die Lösung mit dem MemIni schon zu den einfachsten gehört, da du nichtmal eigene Codes zum auslesen schreiben musst. Deine StringList schreibst du ja auch nicht selber
  Mit Zitat antworten Zitat
LoL
(Gast)

n/a Beiträge
 
#15

Re: TStringlist wie TIniFile

  Alt 23. Mär 2005, 09:05
Dafür fehlen da aber so schöne sachen wie Count oder der Stringzugriff über einen Index
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#16

Re: TStringlist wie TIniFile

  Alt 28. Mär 2005, 17:10
Hallo Leute! Ich habe genau das selbe Problem wie LOL, ich brauche eine Ini, die nur im Speicher als StringList rumliegt. Mein Problem ist, dass ich nicht an den Source ran komme.

@LOL: Könntest du die Unit der neuen "TMemIni" mal posten (anhängen) oder irgendwie sowas? Das wär super!
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#17

Re: TStringlist wie TIniFile

  Alt 28. Mär 2005, 17:16
Wozu willst du den Source?

Mit TMemIni kannst du eine Inidatei, bzw. besser Struktur im Speicher verwalten. Wie man die Daten anstelle einer Datei aus einer Stringlist in die MemIni einließt hatte ich hier schon gepostet: Link.

MfG Pr0g
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#18

Re: TStringlist wie TIniFile

  Alt 28. Mär 2005, 18:40
Sorry, hab mir nicht alles durchgelesen, die Mitte ausgelassen und gleich zu ANTWORTEN hin

Aber ich hätte dann trotzdem noch eine Frage: Wie bekomme ich den Inhalt der "MemIni" zurück, denn die Stringlist hab ich ja im Speicherfreigegeben?
Und wenn ich sie nicht im Speicher freigebe, passiert mit ihr nichts, wenn ich z.B. einen Wert schreibe oder lösche!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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