AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Logdatei kann lokal nicht auf Server gelesen werden
Thema durchsuchen
Ansicht
Themen-Optionen

Logdatei kann lokal nicht auf Server gelesen werden

Ein Thema von fuchsle · begonnen am 20. Sep 2011 · letzter Beitrag vom 21. Sep 2011
Antwort Antwort
fuchsle

Registriert seit: 22. Jul 2011
Ort: Heilbronn
35 Beiträge
 
Delphi XE3 Professional
 
#1

Logdatei kann lokal nicht auf Server gelesen werden

  Alt 20. Sep 2011, 14:42
Hallo zusammen,

mir wurde zum testen eine Logdatei bereit gestellt, ich habe schon an mir gezweifelt bis ich die Datei lokal kopiert hatte.
Wenn ich die Datei nun lokal auf dem Rechner habe, so kann ich wunderbar darauf zugreifen.
Wenn ich jedoch auf die Datei auf dem Server zugreifen möchte, so bekomme ich eine Fehlermeldung "E/A-Fehler 104".
Der Fehler tritt in der Zeile von " while not eof(f) do" auf.
Die Datei wird alle 60s aktualisiert.

Hier die Routine mit der ich auf die Datei zugreife:

Delphi-Quellcode:
function ThreadValue.ReadLogFile(Value: Integer): Double;
var
  f: TextFile;
  s: String;
  i: Integer;
  d: Double;
begin
// AssignFile(f, 'c:\temp\xxx.LOG');
  AssignFile(f, '\\...\xxx.LOG');
// Fehlermeldungen ausschalten:
{$I-}
  Reset(f);
{$I+}
  i := 0;
  DecimalSeparator := '.';
  while not eof(f) do
  begin
    Readln(f, s);
    d := StrToFloat(s);
    case i of
    0, 1, 2:
      begin
        d := d / 100;
      end;
    end;
    if Value = i then
    begin
    Result := d;
    end;
    Inc(i);
  end;
  CloseFile(f)
end;
Hier der Inhalt der Logdatei:
1352.64
509.78
806.19
18.03

Vielen Dank für eure Hilfe!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: Logdatei kann lokal nicht auf Server gelesen werden

  Alt 20. Sep 2011, 14:49
Wenn Du schon {$I-} benutzt, dann solltest Du auch IOResult auswerten.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#3

AW: Logdatei kann lokal nicht auf Server gelesen werden

  Alt 20. Sep 2011, 14:57
Ich kenne den Fehlercode nicht auswendig, aber wenn zwei Programme gleichzeitig auf eine Datei zugreifen, kracht es mit hoher Wahrscheinlichkeit mal. Und genau das ist eben bei dir der Fall. Daher unbedingt das IOResult abfragen und schauen, ob du überhaupt Zugriff auf die Datei hast. Zudem ists immer gut, wenn du nach einem erfolgreichen Reset die Datei auch wieder zu machst -> try-finally-Block.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

AW: Logdatei kann lokal nicht auf Server gelesen werden

  Alt 20. Sep 2011, 14:58
Weitere Fehlerquelle ist die relative Pfadangabe oder hast du sie nur hier gekürzt?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Klaus01

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

AW: Logdatei kann lokal nicht auf Server gelesen werden

  Alt 20. Sep 2011, 15:02
..
104 nicht zum Lesen geöffnet - die Datei sollte dann schon gefunden worden sein,
sonst wäre wohl eine andere Fehlernummer aufgetreten.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
fuchsle

Registriert seit: 22. Jul 2011
Ort: Heilbronn
35 Beiträge
 
Delphi XE3 Professional
 
#6

AW: Logdatei kann lokal nicht auf Server gelesen werden

  Alt 20. Sep 2011, 15:05
Weitere Fehlerquelle ist die relative Pfadangabe oder hast du sie nur hier gekürzt?
Ist nur hier gekürzt.

Mit einem normalen Editor (TextPad) kann ich die Datei ohne Probleme öffnen und es wird mir gemeldet wenn sich was in der Datei geändert hat.
Mir war klar, dass es Probleme geben kann wenn ein anderes Programm immer wieder in die Datei schreibt.

Wie kann ich manuel prüfen ob die Datei "frei" gegeben ist?
  Mit Zitat antworten Zitat
Klaus01

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

AW: Logdatei kann lokal nicht auf Server gelesen werden

  Alt 20. Sep 2011, 15:08
.. meines Wissens versucht reset(f) die Datei exclusive zu öffnen.
Eventuell kann man da noch etwas am FileMode drehen.
Oder aber TFileStream nutzen und die Optionen beim Öffnen der Datei mitgeben.

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

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#8

AW: Logdatei kann lokal nicht auf Server gelesen werden

  Alt 20. Sep 2011, 16:02
Und dann immer schön auf den Benutzerkontext des Service achten, gell
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
fuchsle

Registriert seit: 22. Jul 2011
Ort: Heilbronn
35 Beiträge
 
Delphi XE3 Professional
 
#9

AW: Logdatei kann lokal nicht auf Server gelesen werden

  Alt 21. Sep 2011, 11:02
Problem gelöst:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Stream: TStream;
  Stringlist: TStringList;
  Filename: string;
begin
  Filename := '\\...\xxx.LOG'; // Pfad nur im Beispiel gekürzt
  Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyNone);
  try
    Memo1.Lines.LoadFromStream(Stream);
  finally
    Stream.Free;
  end;
end;
  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 21:07 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