AGB  ·  Datenschutz  ·  Impressum  







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

.txt dateien Online auslesen

Ein Thema von .echo · begonnen am 4. Okt 2006 · letzter Beitrag vom 5. Okt 2006
Antwort Antwort
.echo

Registriert seit: 13. Mai 2006
21 Beiträge
 
#1

.txt dateien Online auslesen

  Alt 4. Okt 2006, 18:44
Hallo,

Also ich bin auf folgendes problem gestoßen;
Habe mein Program so aufgebaut, das es aus einer Text datei die sich auf einem server befinded
entweder eine 0 oder eine 1 ausliest, mehr beinhalted die txt auch nicht, da sie den serverstatus anzeigen soll.
Ich hab das jetzt so gemacht, das ich die txt downloade und sie dann local öffne und auslese;
Wenn ich diese Procedure jetzt aber wärend der laufzeit wiederhohle, scheint das tool obwohl ich die datei jedesmal wieder lösche, die datei nicht erneut downzuloaden, sonder hohlt sie sonst woher, ich weiß jetzt nicht ob die von windows temporär gespeichert wird oder wieso die nicht neu gedownloaded wird.

Demnach wollt ich wissen wie man eine text datei direkt vom sever laden kann, und dann den inhalt feststellen kann;

wäre dankbar für tipps oder lösungen.

mfg
~.echo
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: .txt dateien Online auslesen

  Alt 4. Okt 2006, 18:46
Wie lädst du diese? U.U. wird nämlich geprüft ob einen neue vorliegt, und wenn nicht aus dem Cache geladen.
Markus Kinzler
  Mit Zitat antworten Zitat
.echo

Registriert seit: 13. Mai 2006
21 Beiträge
 
#3

Re: .txt dateien Online auslesen

  Alt 4. Okt 2006, 19:04
Danke erstmal für die schnelle antwort.
Hmm, also muss ich die irgendwie vorher rüberprüfen ob ne neue vorliegt, aber die größe der datei ändert sich auf dem server ja nicht ist ja entweder ne 1 oder ne 0, oder wird dort der inhalt, bzw, änderungsdatum überprüft?

Also laden tue ich die mit dieser function:
Delphi-Quellcode:
function GetInetFile
(const fileURL, FileName: String): boolean;
const BufferSize = 1024;
var
  hSession, hURL: HInternet;
  Buffer: array[1..BufferSize] of Byte;
  BufferLen: DWORD;
  f: File;
  sAppName: string;
begin
 Result:=False;
 sAppName := ExtractFileName(Application.ExeName);
 hSession := InternetOpen(PChar(sAppName),
                INTERNET_OPEN_TYPE_PRECONFIG,
               nil, nil, 0);
 try
  hURL := InternetOpenURL(hSession,
            PChar(fileURL),
            nil,0,0,0);
  try
   AssignFile(f, FileName);
   Rewrite(f,1);
   repeat
    InternetReadFile(hURL, @Buffer,
                     SizeOf(Buffer), BufferLen);
    BlockWrite(f, Buffer, BufferLen)
   until BufferLen = 0;
   CloseFile(f);
   Result:=True;
  finally
   InternetCloseHandle(hURL)
  end
 finally
  InternetCloseHandle(hSession)
 end
end;
Also diese hab ich nicht selbst geschrieben, da das niocht die hauptaufgabe von meinem Program ist, und ich mir die arbeit ersparen wollte, war vielleicht mein fehler;


Edit:
Also, am liebsten würde ich die file garnicht erst local speichern, so wie ich das bei xml mache;
Also wenn du dafür auch einen vorschlag hättest, immer gerne;
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

Re: .txt dateien Online auslesen

  Alt 4. Okt 2006, 19:26
eine paar infos mal zur lokalen version (ich hoff ich habs noch richtig im kopf ^^)

ersetz mal
Rewrite(f,1); durch
Reset(f); und

Delphi-Quellcode:
InternetReadFile(hURL, @Buffer,
                     SizeOf(Buffer), BufferLen);
durch
ReadLn(f, sRow); // kann aber auch Readln(sRow, f) heißen
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
.echo

Registriert seit: 13. Mai 2006
21 Beiträge
 
#5

Re: .txt dateien Online auslesen

  Alt 4. Okt 2006, 19:31
Danke erstmal,
jedoch sagt Delphi mir bei
sRow
Undeclared identifier
Müsst ich da noch eine weitere unit einbinden?
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#6

Re: .txt dateien Online auslesen

  Alt 4. Okt 2006, 19:34
Hi,

@Andidreas: Na na, das wird dann aber nix. Er liest ja via InternetReadfile und schreibt lokal. Das ist schon richtig so.

Aber:

Bei dem Open der Session kann man noch ein paar Flags angeben. Must mal in die Hilfe dazu schauen. Und eins dieser Flags müsste sein, dass die Datei nicht gecached werden darf.

Gruss

Thomas.
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
.echo

Registriert seit: 13. Mai 2006
21 Beiträge
 
#7

Re: .txt dateien Online auslesen

  Alt 4. Okt 2006, 19:49
Danke erstmal,
Nunja, hab bisher die lösung noch nicht, jedoch kenne mich mit
InternetReadfile nicht aus, demnach kann ich die procedur so abändern, dass der inhalt der datei in eine globale string variable gelesen werden kann anstatt diesen in einer datei abzulegen?
  Mit Zitat antworten Zitat
Benutzerbild von WordsBG
WordsBG

Registriert seit: 17. Sep 2005
63 Beiträge
 
Delphi 7 Professional
 
#8

Re: .txt dateien Online auslesen

  Alt 4. Okt 2006, 20:27
Wieso nimmst du nicht den HTTP-client von den Indys, da musst du nur stringVar := idHTTP1.Get('http://xxx.de/x.txt'); machen...
  Mit Zitat antworten Zitat
.echo

Registriert seit: 13. Mai 2006
21 Beiträge
 
#9

Re: .txt dateien Online auslesen

  Alt 4. Okt 2006, 20:36
Hmm auch ne möglichkeit, habs jetz mit dem tipp von thkerkmann gelöst;
Musste nur die flag hinzufügen;
Delphi-Quellcode:
hURL := InternetOpenURL(hSession,
            PChar(fileURL),
            nil,0,INTERNET_FLAG_DONT_CACHE,0);
Also danke für die tipps; Ich denke mal es geht jetzt;


stringVar := idHTTP1.Get('http://xxx.de/x.txt'); Wird das gecached?
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#10

Re: .txt dateien Online auslesen

  Alt 5. Okt 2006, 07:25
@.echo

sry hatte vergessen dazu zu schreiben das srow eine string variable ist die du in deiner prozedur/funktion deklarieren musst!


[quote="thkerkmann"]@Andidreas: Na na, das wird dann aber nix. Er liest ja via InternetReadfile und schreibt lokal. Das ist schon richtig so.
quote]

naja er hat geschrieben:

Zitat von .echo:
das ich die txt downloade und sie dann local öffne und auslese;
wenn das so stimmt, dann sind meine befehle wohl glaub doch nicht so falsch
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  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 00:54 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