AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Ohne Zwischenspeicherung Ini-Datei downloaden und einlesen
Thema durchsuchen
Ansicht
Themen-Optionen

Ohne Zwischenspeicherung Ini-Datei downloaden und einlesen

Ein Thema von TheMiller · begonnen am 26. Mär 2008 · letzter Beitrag vom 26. Mär 2008
Antwort Antwort
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

Ohne Zwischenspeicherung Ini-Datei downloaden und einlesen

  Alt 26. Mär 2008, 11:05
Hallo,

bin gerade dabei, eine Update-Unit für mein Programm zu schreiben. Um die verügbaren Updates anzuzeigen, möchte ich eine Ini-Datei von meinem Server downloaden und den Inhalt einlesen. Download geschieht durch IdHTTP in Verbindung mit einem Filestream.

Wenn alles gut geht, habe ich die Datei im Filestream. Wie kann ich jetzt über Inifiles die Datei öffnen, ohne sie erst mit dem FileStream auf der Festplatte des Clients speichern zu müssen? Geht das überhaupt?

Danke!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Ohne Zwischenspeicherung Ini-Datei downloaden und einles

  Alt 26. Mär 2008, 11:08
Gibts da nicht ein TMemIni-Klasse (oder so ähnlich)
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Ohne Zwischenspeicherung Ini-Datei downloaden und einles

  Alt 26. Mär 2008, 11:10
TMemIniFile
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Ohne Zwischenspeicherung Ini-Datei downloaden und einles

  Alt 26. Mär 2008, 11:11
Ja, die gibt's. Aber mit Streams kann die auch nicht so recht.

Ich würde eine TStringList nehmen (Methode "LoadfromStream") und dann flugs selber parsen.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Klaus01

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

Re: Ohne Zwischenspeicherung Ini-Datei downloaden und einles

  Alt 26. Mär 2008, 11:12
.. ja, TMemIniFile.SetStrings

Zitat von DelphiHilfe:
procedure SetStrings(List: TStrings);

Description

Call SetStrings to populate the in-memory copy of the INI file data with the contents of a string list.

List is a string list object, created and maintained by the application, from which the INI file data is copied.

SetStrings uses the Clear method to erase any existing INI file data prior to copying the new data.

SetStrings can be used to reread data from the INI file from disk after it is erased with the Clear method. The LoadFromFile method of a string list can be used to retrieve the contents of the INI file and then SetStrings can copy the data into the memory buffer
.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#6

Re: Ohne Zwischenspeicherung Ini-Datei downloaden und einles

  Alt 26. Mär 2008, 11:12
Das ist ja Klasse! Kannte ich noch garnicht.

Die Benutzung ist - nehme ich mal an - genauso, wie bei der "richtigen" Ini-Klasse!

Dankeschön!


[EDIT]Hm... ich will ja auch nur lesen. Nicht in die Ini-Schreiben. Die Daten sollen mir nur die Updates anzeigen[/EDIT]
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Ohne Zwischenspeicherung Ini-Datei downloaden und einles

  Alt 26. Mär 2008, 11:13
Zitat von DJ-SPM:
Die Benutzung ist - nehme ich mal an - genauso, wie bei der "richtigen" Ini-Klasse!
Ist genau so
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#8

Re: Ohne Zwischenspeicherung Ini-Datei downloaden und einles

  Alt 26. Mär 2008, 18:45
Ich kann die Ini-Datei jetzt downloaden, aber ich bekomme einen weiteren Eintrag, der garnicht in der Ini steht. Die Ini hat nur einen Eintrag, angezeigt bekomme ich 2. Der letzte besteht aus irgendwelchen Hieroglyphen...

Delphi-Quellcode:
Updates:=TStringList.Create;
  try
    Updates.Text:=www.Get('http://server/updates.ini');
  finally
    [url]www.free;[/url]
  end;
  ini:=TMemIniFile.Create('');
  ini.SetStrings(Updates);
  Updates.Clear;
  ini.ReadSections(Updates);
Ist der Code falsch?
  Mit Zitat antworten Zitat
Klaus01

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

Re: Ohne Zwischenspeicherung Ini-Datei downloaden und einles

  Alt 26. Mär 2008, 19:59
Guten Abend,

ich habe das mal kurz getestet, ohne TMemIni - weil da sieht man ja nichts.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
 MemStream :TMemoryStream;
begin
  MemStream := TMemoryStream.Create;
  idhttp1.Get('http://...../test.ini',MemStream);
  MemStream.Position:=0;
  Memo1.Lines.LoadFromStream(MemStream);
  MemStream.free;
end;
Das oben beschriebene klappt bei mir, ohne irgendwelchen merkwürdigen Zeichen.


Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#10

Re: Ohne Zwischenspeicherung Ini-Datei downloaden und einles

  Alt 26. Mär 2008, 21:03
Jap, ich war nur blöd...

Der Wert kam aus einem Array-Eintrag den es irgendwie nicht gegeben hat. Ein -1 hat geholfen!

Sorry!
  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 05:45 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