Anzeige
Archiv - Navigation
872to876
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
872to876
872to876
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Anführungszeichen in prn-Datei verhindern

Anführungszeichen in prn-Datei verhindern
27.05.2007 01:06:04
Oliver
Mein Makro erledigt folgende Aufgabe:
Ich will eine dat-Datei in Excel bearbeiten und den Inhalt dann als txt-Datei speichern.
Dabei muß ich sie nach der Bearbeitung zunächst als prn-Datei speichern (leerzeichengetrennt)
und dann zu einer txt-Datei machen.
Speichere ich sie gleich als txt-Datei, wird sie von einem Gerät nicht korrekt gelesen.
Problem:
Das programmgesteuerte Speichern als prn-Datei setzt jede Textzeile leider in Anführungsstriche
(das passiert beim manuellen Speichern ohne Makro nicht).
Das macht die Datei natürlich für das besagte Gerät unbrauchbar.
Die Textzeilen werden bei meiner Bearbeitung in Excel übrigens als 1 Spaltenwert
betrachtet (es wird im wesentlichen nur zeilenweise sortiert).
Frage:
Wie verhindere ich beim Speichern als prn-Datei die Anführungszeichen?
Hier ein paar Code-Auszüge:
Option Explicit

Sub Makro_Sort()
(...)
' Datei öffnen, es ist eine dat-Datei
fileFilter = "Daten-Dateien (*.dat), *.dat, Text-Dateien (*.txt), *.txt"
pfad = Application.GetOpenFilename(fileFilter)
Workbooks.OpenText Filename:=pfad, DataType:=xlDelimited, semicolon:=True
(...)
' Zum Speichern der Text-Datei den in N1 befindlichen Dateinamen benutzen
Dim sFileName As String
sFileName = Range("N1").Value	' z.B. "meinedatei"
(...)
' Speicher-Pfad fest vorgeben
Dim sPathOnly, sPath As String
sPathOnly = "D:\meinpfad\"
sPath = sPathOnly & sFileName   ' Enthält noch keine Datei-Endung
Dim fileSaveName As Variant
fileSaveName = Application.GetSaveAsFilename( _
InitialFileName:=sPath, _
fileFilter:="Formatierter Text (leerzeichengetrennt) (*.prn), *.prn")
' fileSaveName ist jetzt z.B. "D:\meinpfad\meinedatei.prn"
If fileSaveName  False Then
ActiveWorkbook.SaveAs fileSaveName
' prn-Datei hat jetzt leider Anführungszeichen
am Anfang und Ende jeder Zeile :o(
' Geöffnete prn-Datei (das Excel-Blatt) schließen
ActiveWorkbook.Close SaveChanges:=False
' prn-Datei in txt-Datei umbenennen
Dim newName As String
newName = Mid(fileSaveName, 1, Len(fileSaveName) - 3) & "txt"
' Vorhandene Datei mit demselben Namen löschen,
sonst Umbenennen nicht möglich
Kill newName  ' Fehlermeldung, wenn Datei nicht existiert
Name fileSaveName As newName    ' Fehlermeldung, wenn Datei
schon existiert;  deswegen vorher kill
Else
MsgBox "Vorgang wurde ohne Datei-Erstellung abgebrochen."
End If
End Sub


Über Hilfe/Anregungen würde ich mich sehr freuen. Danke im voraus.
Oli

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Anführungszeichen in prn-Datei verhindern
28.05.2007 08:00:34
Oberschlumpf
Hi Oliver
Ich habe jetzt deinen Code nicht genau geprüft. Aber wenn es sich bei der PRN-Datei um reinen ASCII-Text handelt, dann versuch es mal so:
Führe diesen Code direkt nach dem Abspeichern als PRN-Datei aus:

Dim lstrZeile As String
Open "D:\meinpfad\meinedatei.prn" For Input As #1
Open "D:\meinpfad\dummy.txt" For Output As #2
Do While Not Eof(1)
Line Input #1, lstrZeile
lstrZeile = Left(lstrZeile, Len(lstrZeile) - 1)
lstrZeile = Right(lstrZeile, Len(lstrZeile) - 1)
Print #2, lstrZeile
Loop
Close
Kill "D:\meinpfad\meinedatei.prn"
Name "D:\meinpfad\dummy.txt" As "D:\meinpfad\meinedatei.prn"


Zuerst wird aus der PRN-Datei geöffnet und Zeilenweise eingelesen
Aus jeder Zeile wird das erste und letzte Zeichen entfernt
Die "neue" Zeile wird erst mal in der Datei dummy.txt zwischengespeichert
Wenn fertig, wird die alte PRN-Datei gelöscht und die Datei dummy.txt wird in den Namen der PRN-Datei umbenannt
Konnte ich helfen?
Ciao
Thorsten

Anzeige
AW: Anführungszeichen in prn-Datei verhindern
28.05.2007 09:38:00
Oliver
Danke Thorsten,
hab ich umgesetzt und funktioniert, zumindest die Textdatei ist da, wie sie sein soll.
Ob das Gerät sie jetzt lesen kann, muß ich erst noch testen.
Noch schöner wäre natürlich ein Weg ohne zeilenweises Wegnehmen der Anführungszeichen,
also ein Speichern, das das sofort erledigt, aber so geht's bestimmt (hoffentlich) auch :o).
Danke sehr.
Oli

AW: Anführungszeichen in prn-Datei verhindern
28.05.2007 10:32:48
Oberschlumpf
Hi Olli
"Noch schöner wäre natürlich ein Weg..." usw....
Da frag am besten mal bei Microsoft nach, warum beim nicht automatisierten Speichern eine andere Datei erzeugt wird als beim automatisierten Speichern :-)
Ciao
Thorsten
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige