UNIX Textdateien mit VB.net erstellen ?

mordillo

Mitglied
Hi,
gibt es eine komfortable Lösung, um mit VB.net Textdateien zu speichern, die allerdings UNIX Konform sind ?

Danke für Hilfe

Gruß
m.
 
Hi mordillo,

ich weiß es zwar nicht, aber könnte es nicht möglich sein mit der gewöhnlichen Methode einfach keine *.txt-Datei zu speichern sondern stattdessen die Unix-Endung einzufügen?

Wenn nun also zum Beispiel eine Unix-Textdatei die Endung ".xyz" hat, dann würde die Funktion so aussehen:
dim Kanalnummer
Kanalnummer = FreeFile
Open "C:\uvw.xyz" for Output as Kanalnummer
Print #Kanalnummer, "Hier kommt der Textinhalt entweder durch Eintippen hin oder durch das Spezifizieren von Variablen als String!"
Close Kanalnummer

Soweit die Theorie. Es würde mich freuen, wenn es klappt und es dir geholfen hat. Diese Lösung kommt mir allerdings zu einfach vor - obwohl sie eigentlich logisch klingt(der Zeichensatz müsste ja der gleiche sein).

Ciao:
Da' Hacker
 
Hi, das geht natürlich so nicht, da
1.
Unix keine expliziten Dateiendungen braucht

2.
VB wirklich nicht so schlau ist wenn die ein FileOpen machst, das es da gleich richtig 'parametrieren' würde, ausser den OpenMode (In/OUT Binary Random usw.)

Für weitere Ratschläge wär ich sehr dankbar.

Gruß
m.
 
Hi,

du musst halt darauf achten das das richtige Encoding verwendet wird und das
kannst du in VB.NET angeben.
Dann sollte das schon fluppen.

z.B.

Dim fs As New FileStream("C:\Test.txt", FileMode.OpenOrCreate)
Dim wr As New StreamWriter(fs, System.Text.Encoding.UTF7)

Hinweis:

Unix-Rechner: i.a. 7-Bit-ASCII-Zeichensatz (7-Bit-ISO Code, US-Variante), nur Zeichen mit ASCII-Code kleiner 128, also Buchstaben, Ziffern und Sonderzeichen (Punkt, Komma etc.) ohne nationale Sonderzeichen (Umlaute etc.) und ohne Graphikzeichen. Zeilentrenner ist LF (Line Feed), das Zeichen 10.

Jens
 
Hi, danke für die Antwort, allerdings kennt mein .net VB weder StreamWriter, noch FileStream .... Ein Imports schlägt ebenso fehl.

Hmm woran liegt das?
 
Zuletzt bearbeitet:
Hi,

was hast du denn bei Import angegeben ?
Die Klasse heißt System.IO.....

Also Dim wr As New System.IO.StreamWriter(fs, System.Text.Encoding.UTF7)

oder Imports System.IO

Das wäre aber über die Hilfe leicht zu finden gewesen, oder ?

Jens
 
Hi, vielen Dank erstmal.

Lesen geht gut, aber schreiben funktioniert so nicht. Hab mir das Unix FileFormat mal angeschaut und hab eine gaaanz einfache Lösung um es in das Format zu bringen.

Code:
FileOpen(1,myFile, OpenMode.Output)
         print(1,"WhatIwantToWrite" & vbLF)
FileClose(1)

Das wars schon ... (Unix TextFormate haben nur ein LineFeed, ohne CarriageReturn ... Muß man erstmal drauf kommen :)


P.S.: Einem 'Imports' (will man es am Klassenanfang für alle Methoden zur Verfügung stellen) muß ein:

Option Explicit On

vorausgehen (Für die die es Interssiert .. )
 
Zuletzt bearbeitet:
Zurück