AGB  ·  Datenschutz  ·  Impressum  







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

Texdatei öffen

Ein Thema von carknue · begonnen am 26. Mai 2005 · letzter Beitrag vom 28. Mai 2005
Antwort Antwort
Seite 1 von 2  1 2      
carknue

Registriert seit: 26. Mai 2005
37 Beiträge
 
Turbo Delphi für Win32
 
#1

Texdatei öffen

  Alt 26. Mai 2005, 23:54
Hallo,

ich möchte eine vorhandene Textdatei nur zum lesen öffen, gleichzeitig soll aber ein anderes Programm in die Datei schreiben dürfen. Wie ich es jetzt mache, funktioniert es nicht, weil das andere Programm nicht in die Datei schreiben kann.


Delphi-Quellcode:
OpenDialog1.Filter := 'DRM Log Files|*.log;*.txt;*.bak|All Files|*.*';
 if not OpenDialog1.Execute then
 Exit;
 Filemode:= fmOpenRead or fmShareCompat;
 
 {$I-}
 AssignFile(f, OpenDialog1.FileName);
 Reset(f);
 {$I+}
Was mache ich falsch?
  Mit Zitat antworten Zitat
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Texdatei öffen

  Alt 27. Mai 2005, 00:07
Tag

Erstmal: Garnicht

-> Du kannst eine Datei nicht mit zwei Programmen gleichzeitig bearbeiten.
Frage: Wozu soll dass den gut sein? Bei sowas kommt meistens (Un)Kraut hinten raus. Du könntest evt. eine Art "Buffer" dazwischen schieben. Jedes Programm bearbeitet die Datei(ohne direkt in die Datei zu schreiben!) und am schluss wird gespeichert...

mfg

edit(2):

[ot]
Delphi-Quellcode:
{$I-} 
{$I+}
vofür sind diese Befehele?

[/ot]
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Texdatei öffen

  Alt 27. Mai 2005, 00:14
Zitat von mr47:
[ot]
Delphi-Quellcode:
{$I-} 
{$I+}
vofür sind diese Befehele?
Das sind Kompilerschalter und die findest du alle in der Hilfe.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
carknue

Registriert seit: 26. Mai 2005
37 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Texdatei öffen

  Alt 27. Mai 2005, 00:17
Es sollen ja nicht beide Programme reinschreiben. Also nochmal: Ich will nur lesen. Das andere Programm soll aber reinschreiben dürfen, währen die Datei von meinem Programm geöffnet ist. Was das andere Programm dann neu reinschreibt, interessiert mich nicht. Das Problem ist nur, dass mein Programm die Datei als Erstes öffnet.
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

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

Re: Texdatei öffen

  Alt 27. Mai 2005, 00:59
Warum liest du die Datei nicht ein und schließt sie danach wieder, bspw. mit einer StringList, oder einem FileStream?

MfG Pr0g
  Mit Zitat antworten Zitat
carknue

Registriert seit: 26. Mai 2005
37 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Texdatei öffen

  Alt 27. Mai 2005, 10:08
Ich könnte auch ne kopie erstellen und die dann auslesen, möchte ich aber nicht, da dies zu lange dauern würde. Die text Datei kann schonmal 5-10Mb groß werden.

Also nochmal mein Problem: Filemode scheint nicht für Textdateien zu gelten. Wie öffne ich eine Textdatei readonly und das sie von anderen gleichzeitig beschrieben werden kann? Ich hätte gedacht, dass das ganz einfach mit Filemode geht.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Texdatei öffen

  Alt 27. Mai 2005, 11:40
Hallo carknue,

fmShareCompat wird heute nur noch in den seltensten Fällen gebraucht (compatible bezieht sich auf DOS und SHARE.EXE). Mach es besser so:

Delphi-Quellcode:
var
  fTExt: TextFile;

begin
  AssignFile(fText, '');
  TTextRec(fText).Mode := fmOpenRead or fmShareDenyNone;
  TTextRec(fText).Mode := fmOpenWrite or fmShareDenyWrite;
  Reset(fText);
  CloseFile(fText);
end.
Grüße vom marabu
  Mit Zitat antworten Zitat
carknue

Registriert seit: 26. Mai 2005
37 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Texdatei öffen

  Alt 27. Mai 2005, 19:17
So kriege ich die Datei überhaupt nicht auf. Error 102 Datei wird schon benutzt?!?
  Mit Zitat antworten Zitat
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Texdatei öffen

  Alt 27. Mai 2005, 21:58
Hast du auch zwischen die > '' < den Dateinamen geschrieben?

mfg
  Mit Zitat antworten Zitat
carknue

Registriert seit: 26. Mai 2005
37 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Texdatei öffen

  Alt 27. Mai 2005, 22:13
Ja klar. Die error Abfang routine spricht bei jedem Versuch die Datei zu öffen an, obwohl sie von keinem anderen Programm geöffnet ist. Code sieht so aus:
Delphi-Quellcode:
OpenDialog1.Filter := 'DRM Log Files|*.log;*.txt;*.bak|All Files|*.*';
 if not OpenDialog1.Execute then
 Exit;
 ListBox1.Clear;
 paint;
 //Filemode:= fmOpenRead or fmShareCompat;
 Button1.Enabled := False;
 Button3.Enabled := False;
 Button5.Enabled := False;
 {$I-}
 AssignFile(f, OpenDialog1.FileName);
 TTextRec(f).Mode := fmOpenRead or fmShareDenyNone;
 TTextRec(f).Mode := fmOpenWrite or fmShareDenyWrite;
 Reset(f);
 {$I+}
 if IOResult = 0 then FileIsThere := true
 else FileIsThere := false;
 if FileIsThere then
 begin
.
.
.
IOResult ist <>0
Mit filemode läßt sich die Datei wenigstens öffnen...
  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 11:38 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