AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Prüfen ob eine Dateivariable mit Assign zugewiesen ist
Thema durchsuchen
Ansicht
Themen-Optionen

Prüfen ob eine Dateivariable mit Assign zugewiesen ist

Ein Thema von diver03 · begonnen am 9. Feb 2011 · letzter Beitrag vom 9. Feb 2011
Antwort Antwort
diver03

Registriert seit: 11. Dez 2007
24 Beiträge
 
Turbo Delphi für Win32
 
#1

Prüfen ob eine Dateivariable mit Assign zugewiesen ist

  Alt 9. Feb 2011, 06:40
Delphi-Version: 5
Hallo

gibt es eine Möglichkeit zu prüfen, ob einer Dateivariable (vom Typ Textfile) eine
Datei zugewiesen wurde?
Ich muss nicht wissen, welche Datei, sondern nur ob die entsprechende Dateivariable
mit assign bereits zugewiesen ist oder nicht.

MfG
Jens
  Mit Zitat antworten Zitat
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#2

AW: Prüfen ob eine Dateivariable mit Assign zugewiesen ist

  Alt 9. Feb 2011, 07:00
So vielleicht?

Delphi-Quellcode:
var
  f:TTextFile
begin
  AssignFile(...);
  if f<>nil then
  begin
    try
      //machwas
    finally
      CloseFile(...);
    end;
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Prüfen ob eine Dateivariable mit Assign zugewiesen ist

  Alt 9. Feb 2011, 08:08
So vielleicht?

Delphi-Quellcode:
var
  f:TTextFile
begin
  AssignFile(...);
  if f<>nil then
  begin
    try
      //machwas
    finally
      CloseFile(...);
    end;
  end;
end;
wenn schon mit try..finally dann bitte auch richtig
Delphi-Quellcode:
var
  f:TTextFile
begin
  AssignFile( f, ... ); // f zuweisen
  if f <> nil then
  try
    ReWrite( f ); // oder
    // ReSet( f ); // oder
    // AppendFile( f ); // öffnet den Zugriff auf die Datei
    try
      // machwas
    finally
      CloseFile( f ); // der hier wieder geschlossen wird
    end;
  finally
    f := nil; // Zuweisung aufheben
  end;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Prüfen ob eine Dateivariable mit Assign zugewiesen ist

  Alt 9. Feb 2011, 08:15
Mein Delphi kennt weder TTextFile, noch lässt sich der Dateivariablen nil zuweisen oder gegen nil prüfen . 0 oder so geht allerdings auch nicht, und ich habe noch nicht herausbekommen, von welchem Typ "Dateivariable" nun wirklich ist.
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
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#5

AW: Prüfen ob eine Dateivariable mit Assign zugewiesen ist

  Alt 9. Feb 2011, 08:23
So vielleicht?

Delphi-Quellcode:
var
  f:TTextFile
begin
  AssignFile(...);
  if f<>nil then
  begin
    try
      //machwas
    finally
      CloseFile(...);
    end;
  end;
end;
Das ist doch wohl ziemlich unsinnig. Selbst wenn man außer acht läßt, daß es kein TTextfile gibt, ein Textfile kein Pointer ist etc: Wenn Du das AssignFile(...) aufrufst, dürfte die alte Verbindung ins Nirwana eingehen.

AssignFile(f) setzt TTextrec(f).Mode auf fmClosed, allerdings auch CloseFile. Reset/Rewrite etc setzen andere Werte der File mode constants. D.h. wenn TTextrec(f).Mode=fmClosed ist, kann man ziemlich sicher sein, daß f gerade nicht benutzt wird.

Zitat von Delphi-Hilfe:
File mode constants are used to open and close disk files.

Unit

System

Category

file management routines

const fmClosed = $D7B0; // closed file

const fmInput = $D7B1; // reset file (TTextRec)
const fmOutput = $D7B2; // rewritten file (TTextRec)
const fmInOut = $D7B3; // reset or rewritten file (TFileRec)
const fmCRLF = $8 // DOS-style EoL and EoF markers (TTextRec)
const fmMask = $D7B3; // mask out fmCRLF flag (TTextRec)

Description

Use the file mode constants when opening and closing disk files. The Mode field of TFileRec and TTextRec will contain one of these values.
  Mit Zitat antworten Zitat
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#6

AW: Prüfen ob eine Dateivariable mit Assign zugewiesen ist

  Alt 9. Feb 2011, 08:34
Was ist denn System.Text überhaupt für ein Dateityp, wenn es doch kein Objekt bzw Klasse ist???
PS: Das mit dem TTextFile war nur so geraten.

PS: Die TStringList ist einfacher zu handhaben
  Mit Zitat antworten Zitat
diver03

Registriert seit: 11. Dez 2007
24 Beiträge
 
Turbo Delphi für Win32
 
#7

AW: Prüfen ob eine Dateivariable mit Assign zugewiesen ist

  Alt 9. Feb 2011, 12:52
Danke, der Tipp mit TTextrec(f).Mode hat mir geholfen.
Damit kann ich arbeiten
  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 12:15 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