alme123
Goto Top

Prüfen, ob Datei textbasiert ist

Guten Morgen,

ich habe folgendes Problem:

ich habe ein Script, das Dateien konvertiert, aber bei nicht textbasierten Dateien sich aufhängt.
Kann man per Batch (oder VBS script) herausfinden, ob eine Datei textbasiert ist?

Vielen Dank im Vorraus,

Alme123

Content-ID: 202433

Url: https://administrator.de/contentid/202433

Ausgedruckt am: 26.11.2024 um 17:11 Uhr

bastla
bastla 27.02.2013 um 08:37:46 Uhr
Goto Top
Hallo Alme123!

Wie sieht denn Deine Definition von "textbasiert" aus?

Grundsätzlich sollte sich per VBScript die Datei als "Text" einlesen und dann zeichenweise interpretieren lassen (zB Prüfung, ob in den ersten 100 Zeichen andere Steuerzeichen als TAB oder Zeilenumbruch = Codes 9, 10, 13 vorkommen) ...

Grüße
bsatla
Alme123
Alme123 27.02.2013 aktualisiert um 16:31:36 Uhr
Goto Top
Hi bastla,

mit textbasiert meine ich TextDateien (Keine .doc sondern normale .txt oder .bat)
keine .exe , .com oder andere Dateien mit diesen "BlockZeichen" drin

Dein Ansatz ist gut, aber realisieren kann ich ihn nicht.

Alme123
bastla
bastla 27.02.2013 aktualisiert um 20:27:16 Uhr
Goto Top
Hallo Alme123!

Das sähe etwa so aus:
T = CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0)).ReadAll  
L = Len(T)
If L > 100 Then L = 100 'nur max erste 100 Zeichen prüfen  
For i = 1 To L
    Code = Asc(Mid(T, i, 1))
    If Code < 32 Then
        Select Case Code
        Case 9, 10, 13
             'Zeichen sind erlaubt  
        Case Else
             'nicht erlaubtes Sonderzeichen  
             NoText = True
             Exit For
        End Select
    End If
Next
If NoText Then WScript.Quit 1
Dieses Script (gespeichert als "D:\Check4Text.vbs") könntest Du zB aus einem Batch mit
cscript //nologo "D:\Check4Text.vbs" "D:\Zu prüfende Datei.Typ" && echo könnte Textdatei sein || echo keine Textdatei
aufrufen ...

Grüße
bastla
Alme123
Alme123 28.02.2013 um 05:19:30 Uhr
Goto Top
Guten Morgen bastla,

dein Script funktioniert perfekt!

Vielen Dank!

Alme123

[Theard closed]