Codeblock Onlinehilfe

TbeCbFileControlObject

TbeCbFileControlObject

Klasse zur Steuerung von Dateien und deren Inhalt. Diese Klasse ist nur in Delphi 11 Versionen von be verfügbar (8.0.1.9+).

Eigenschaften

Eigenschaft

Beschreibung

BOMLength:N

Länge der BOM-Zeichenfolge der Datei. Read-Only.

Content:C

Inhalt der Datei (nur lesend). Wird beim Auslesen immer neu ausgewertet. Ist vom gesetzten Encoding abhängig. Read-Only.

Encoding:N

Dateikodierung. Diese wird beim Setzen der Dateiname automatisch auf die Kodierung der Datei gesetzt. Wenn diese Eigenschaft geändert wird, dann wird auch der Inhalt konvertiert, welches durch die Append-Funktionen geschrieben wird.

Exists:L

Gibt an, ob die Datei existiert. Read-Only.

FileName:C

Dateiname. Ohne dieser Eigenschaft sind alle Funktionen und Eigenschaften nicht bedienbar.

Name:C


Size:N

Gibt die Dateigröße an. Read-Only.

Tag:N


Methoden

Methode

Beschreibung

CreateFile(aRaiseException:L):L

Erstellt die Datei, falls sie nicht existiert. Result: boolean = Eine Datei wurde erstellt.

AppendAnsi(aData:C)

Fügt ANSI Text hinzu

AppendUnicode(aData:C)

Fügt Unicode Text hinzu

AppendUnicodeBE(aData:C)

Fügt Unicode (Big-Endian) Text hinzu

AppendUTF8(aData:U)

Fügt UTF8 Text hinzu

Rename(aNewName:C)

Benennt die Datei um

Delete()

Löscht die Datei

Clear()

Leert den Inhalt der Datei

IsAttributeActive(aAttribute:N):L

Gibt an, ob der Dateiattribut aktiv ist. Rückgabe: boolean

Beispiel

|oFile, cDir, aFiles, xFileName, xEncoding, bWaitToDelete|

xFileName := 1,
xEncoding := 2,

bWaitToDelete := false,

cDir := 'C:\Temp\FileTest\',
aFiles := {
{cDir + 'ANSI_File.txt',    bfeANSI},
{cDir + 'UTF8_File.txt',    bfeUTF8},
{cDir + 'Unicode_File.txt', bfeUnicode},
{cDir + 'UTF16LE_File.txt', bfeUTF16LE}, // = bfeUnicode
{cDir + 'UTF16BE_File.txt', bfeUTF16BE}
},

//******************************************************************************
function WriteString(oFile, cString)
|i, oFileObj|
   for i := 1 to ALen(aFiles) do
      oFileObj := oFile.GetFile(aFiles[i, xFileName]),
      oFileObj.Encoding := aFiles[i, xEncoding],
      oFileObj.AppendAnsi('A[' + cString + ']' + CRLF),
      oFileObj.AppendUnicode('U[' + cString + ']' + CRLF),
      oFileObj.AppendUnicodeBE('B[' + cString + ']' + CRLF),
      oFileObj.AppendUTF8('8[' + cString + ']' + CRLF),
   next,
end,

//******************************************************************************
function ReadContent(oFile)
|i, oFileObj|

   for i := 1 to ALen(aFiles) do
      oFileObj := oFile.GetFile(aFiles[i, xFileName]),
      writeln('Filename [' + oFileObj.FileName + ']' + CRLF +
              'Encoding [' + Str(oFileObj.Encoding) + ' (Expected ' + Str(aFiles[i, xEncoding]) + ')]' + CRLF +
              'Size: ' + Str(oFileObj.Size) + CRLF +
              'Content: ----------------' + CRLF +
              oFileObj.Content + CRLF +
              '-------------------------'),
   next,
end,

//******************************************************************************
function DeleteAllFiles(oFile)
|i, oFileObj|
   for i := 1 to ALen(aFiles) do
      oFileObj := oFile.GetFile(aFiles[i, xFileName]),
      if oFileObj.Exists then
         oFileObj.Delete(),
      endif,
   next,
end,

//******************************************************************************
// HAUPTPROGRAMM
//******************************************************************************
ForceDirectories(cDir),
oFile := CreateObject('TbeCbFile'),
startseq
   startseq
      WriteString(oFile, 'Hello ' + CodepointToChar('U+4F80') + ' world! €' + CodePointToChar('U+221E')),
      ReadContent(oFile),
      oFile.WriteAllFileContent(cDir + 'AllText.txt', bfeUnicode,
                                'bla ' + CodePointToChar('U+2398'), bfeUnicode),
      writeln(oFile.ReadAllFileContent(cDir + 'AllText.txt', bfeUnicode)),
   always
      if bWaitToDelete then
         Meld('Dialog schließen, um Dateien zu löschen'),
      endif,
      DeleteAllFiles(oFile),
   stopseq,
always
   DestroyObject(oFile),
stopseq,