AGB  ·  Datenschutz  ·  Impressum  







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

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 1 von 3  1 23      
ter

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

Wo soll das FileMode im Quellcode hin?

  Alt 3. Jul 2019, 13:50
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
Terence Coman
  Mit Zitat antworten Zitat
hoika

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

AW: Wo soll das FileMode im Quellcode hin?

  Alt 3. Jul 2019, 13:53
Hallo,
1 oder 2, vor dem Open.
Den alten Wert würde ich retten und nach der Operation wiederherstellen.
Heiko
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.041 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Wo soll das FileMode im Quellcode hin?

  Alt 3. Jul 2019, 14:30
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.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Wo soll das FileMode im Quellcode hin?

  Alt 3. Jul 2019, 14:42
Ich finde, das ist im Wiki ganz gut erklärt: http://docwiki.embarcadero.com/Libra...ystem.FileMode
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
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.824 Beiträge
 
Delphi 12 Athens
 
#5

AW: Wo soll das FileMode im Quellcode hin?

  Alt 3. Jul 2019, 19:04
Frage an den original Poster: warum benutzt du diese klassischen Datei Routinen?
Es gibt inzwischen diverse modernere Alternativen, z. B.

- TFileStream
- TStringList.LoadFromFile
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: Wo soll das FileMode im Quellcode hin?

  Alt 3. Jul 2019, 20:58
Frage an den original Poster: warum benutzt du diese klassischen Datei Routinen?
Es gibt inzwischen diverse modernere Alternativen, z. B.

- TFileStream
- TStringList.LoadFromFile
Veraltet ist relativ kommt immer darauf an in welchem Kontext man es verwendet.
Nur weil es neuer\moderner ist muss es nicht immer den Bedürfnissen entsprechend besser sein.

Denn irgendwo setzt auch TStringlist auf irgendwelche Methoden auf nicht das es sogar letztendlich aufs gleiche rauskommt nämlich mit zugriff auf die Win32Api.
Die wurde bestimmt nicht für die TStringList neu erfunden.

gruss

Geändert von EWeiss ( 3. Jul 2019 um 21:07 Uhr)
  Mit Zitat antworten Zitat
hoika

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

AW: Wo soll das FileMode im Quellcode hin?

  Alt 3. Jul 2019, 22:03
Hallo,
FileMode hat mit WinAPI nicht direkt zu tun.

Aber ja:
Ich denke TStringList benutzt intern auch FileMode.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: Wo soll das FileMode im Quellcode hin?

  Alt 3. Jul 2019, 22:48
Hat es mit Sicherheit. Es steuert ja, wie die Datei zu öffnen ist und reicht es an die API Funktion CreateFile weiter.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#9

AW: Wo soll das FileMode im Quellcode hin?

  Alt 4. Jul 2019, 13:51
Hallo,
FileMode hat mit WinAPI nicht direkt zu tun.

Aber ja:
Ich denke TStringList benutzt intern auch FileMode.
Nein, TStringList wertet die Variable FileMode nicht aus. Der FileMode wird ausschließlich von den "klassischen" Datei-Routinen benutzt. TStringlist benutzt dagegen (File-)Streams. Filestream setzen wiederum auf den File-Routinen des jeweiligen OS auf.
  Mit Zitat antworten Zitat
ter

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

AW: Wo soll das FileMode im Quellcode hin?

  Alt 5. Jul 2019, 16:04
Danke fuer die vielen Antworten.

Aus meiner Delphi 6 Hilfe erfahre ich
ueber "FileMode" folgendes:

---
Indicates the access mode on typed and untyped files
opened by the Reset procedure.

Unit

System

Category

I/O routines

var FileMode: Byte = 2;

Description

The FileMode variable determines the access mode to
use when typed and untyped files (not text files)
are opened using the Reset procedure.

The default FileMode is 2 (Read/Write access).
Assigning another value to FileMode causes all
subsequent Resets to use that mode. The SysUtils
unit declares a number of file open mode constants
that can be assigned to the FileMode variable.

Note: Be sure to reset FileMode before calling
Reset with a read-only file. Even if you are only
reading from the file, the default FileMode value
(Read/Write access) will cause an attempt to open
a read-only file to fail.

Warning: FileMode is declared as a variable,
not as a threadvar. Therefore this variable is not
thread-safe.
---

Leider kann ich nirgendswo feststellen, an welcher
Position es zu stehen hat. Default ist immer
FileMode:=fmOpenReadWrite;
gesetzt.

Bei der Verwendung von Append(T), also dem Oeffnen
einer Textdatei, var T : TextFile;, steht Append(T)
nach dem Reset(T). Hier muss FileMode:=fmOpenWrite;
gesetzt werden.

Da ich in meinem Programm aber mehrere TextDateien
oeffne, muss ich den Wert im FileMode oefters aendern.

Gruss Terence
Terence Coman
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      

 

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 04:31 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