AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Wo soll das FileMode im Quellcode hin?

Ein Thema von ter · begonnen am 3. Jul 2019 · letzter Beitrag vom 14. Jul 2019
Antwort Antwort
Seite 2 von 3     12 3   
ter

Registriert seit: 26. Aug 2017
17 Beiträge
 
Delphi 6 Personal
 
#11

AW: Wo soll das FileMode im Quellcode hin?

  Alt 5. Jul 2019, 16:09
Ich vermute mit "FileMode" ist nicht das "Mode" im Record TR, sondern eine Variable die Du, aus welchen Gründen auch immer, irgendwo anders führst.
Dieses vorausgesetzt würde ich nach dem Reset(TR) (oder Rewrite(TR) oder Append(TR) oder CloseFile(TR))
FileMode:=TTextRec(TR).Mode; machen.
Das stellt sicher, dass FileMode den Wert hat, der tatsächlich vom System gesetzt wurde.
Tut mir leid, aber du liegst voellig falsch.
Ich habe weder FileMode selbst definiert noch hat
es etwas mit ".Mode" zu tun.

Danke fuer Deine Hilfe.
Gruss Terence
Terence Coman
  Mit Zitat antworten Zitat
ter

Registriert seit: 26. Aug 2017
17 Beiträge
 
Delphi 6 Personal
 
#12

AW: Wo soll das FileMode im Quellcode hin?

  Alt 5. Jul 2019, 16:16
Danke Dir DeddyH.
Dort steht auch nur das, was in meiner Delphi 6 Hilfe
drinsteht. Alle irgendwo in der Hilfe vorkommenden
Beispiel-Quellcodes ueber Reset(T),..., etc. lassen
das FileMode nicht auftauchen, bzw. sind nicht in den
Beispiel-Quellcodes dabei.

Gruss Terence
Terence Coman
  Mit Zitat antworten Zitat
ter

Registriert seit: 26. Aug 2017
17 Beiträge
 
Delphi 6 Personal
 
#13

AW: Wo soll das FileMode im Quellcode hin?

  Alt 5. Jul 2019, 16:19
Hallo,
1 oder 2, vor dem Open.
Den alten Wert würde ich retten und nach der Operation wiederherstellen.
Danke hoika,
das mit dem "Retten" werde ich in Zukunft immer tun.
Macht man ja beim

var wOldErrorMode : word;
begin
...
wOldErrorMode:=SetErrorMode(SEM_FAILCRITICALERRORS );
...
SetErrorMode(wOldErrorMode);
...
end;

ebenfalls.
Gruss Terence
Terence Coman
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: Wo soll das FileMode im Quellcode hin?

  Alt 5. Jul 2019, 16:23
Hallo,
korrekt.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.535 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Wo soll das FileMode im Quellcode hin?

  Alt 5. Jul 2019, 17:48
Zitat:
Hinweis: Setzen Sie FileMode unbedingt zurück, bevor Sie Reset für eine schreibgeschützte Datei aufrufen. Auch wenn die Datei nur gelesen werden soll, verursacht der Standardwert von FileMode (Schreib-/Lesezugriff), dass das Öffnen einer schreibgeschützten Datei fehlschlägt.
Das erscheint mir persönlich relativ eindeutig. Man muss FileMode also irgendwann vor dem Reset setzen, damit es nicht kracht, wenn man eine schreibgeschützte Datei lediglich lesen möchte.
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 p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#16

AW: Wo soll das FileMode im Quellcode hin?

  Alt 5. Jul 2019, 22:39
Filemode muß vor Reset,Append oder Rewrite gesetzt sein/werden.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.535 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Wo soll das FileMode im Quellcode hin?

  Alt 6. Jul 2019, 08:20
Nur vor Reset. Vor einem Append oder Rewrite den FileMode auf ReadOnly zu setzen wäre ja kontraproduktiv.
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
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
672 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: Wo soll das FileMode im Quellcode hin?

  Alt 6. Jul 2019, 11:35
Frage:
Wo soll das FileMode im Quellcode hin?
Was ist richtig, 1) oder 2) oder 3)?
Code:

var TR : TextFile;
    s : string;
begin
...
1)
AssignFile(TR, 'D:\Dir\FileName.txt');
FileMode:=fmOpenRead;
Reset(T);
...
2)
FileMode:=fmOpenRead;
AssignFile(TR, 'D:\Dir\FileName.txt');
Reset(T);
...
3)
AssignFile(TR, 'D:\Dir\FileName.txt');
Reset(T);
FileMode:=fmOpenRead;
...
{-}
ReadLN(TR, s);
{-}
CloseFile(TR);
{-}
...
Gruss Terence
Ist völlig egal, für Textfile wird Filemode intern durch Reset, Append oder Rewrite gesetzt. Das liegt daran, dass man Textfiles nicht für read und write öffnen kann, da der IO gepuffert wird. Filemode wird nur für file oder file of <type> verwendet, die nicht nur schreib/lesezugriff sondern auch random access erlauben.
Peter Below
  Mit Zitat antworten Zitat
ter

Registriert seit: 26. Aug 2017
17 Beiträge
 
Delphi 6 Personal
 
#19

AW: Wo soll das FileMode im Quellcode hin?

  Alt 14. Jul 2019, 11:54
Ich habe jetzt die Loesung zu der FileMode Position.
Delphi-Quellcode:
    var S, D : File;
        ior : integer;
        myDPFNSource, myDPFNDest : string;
    ...
    myDPFNSource:='D:\File1.ext';
    myDPFNDest:='D:\File2.ext';
    ...
    AssignFile(S, myDPFNSource);
    FileMode:=fmOpenRead;
    {$I-} Reset(S, 1); //oeffnen
    {$I+} inc(ior, IORESULT);
    {-}
    AssignFile(D, myDPFNDest);
    FileMode:=fmOpenReadWrite;
    {$I-} Rewrite(D, 1); //ueberschreiben bzw. erzeugen
    {$I+} inc(ior, IORESULT);
    ...
Bei einer anderen Position mit verschieden gesetzten Dateiattributen ergeben sich Werte groesser Null in der IORESULT Rueckgabe.

Gruss
Terence
Terence Coman
  Mit Zitat antworten Zitat
ter

Registriert seit: 26. Aug 2017
17 Beiträge
 
Delphi 6 Personal
 
#20

AW: Wo soll das FileMode im Quellcode hin?

  Alt 14. Jul 2019, 11:57
Ist völlig egal, für Textfile wird Filemode intern durch Reset, Append oder Rewrite gesetzt. Das liegt daran, dass man Textfiles nicht für read und write öffnen kann, da der IO gepuffert wird. Filemode wird nur für file oder file of <type> verwendet, die nicht nur schreib/lesezugriff sondern auch random access erlauben.
Das wusste ich gar nicht. Vielen Dank fuer Deine Hilfe.
Gruss
Terence
Terence Coman
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 07:46 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