Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1044to1048
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
Inhaltsverzeichnis

xls in asccii-txt file wandeln ?

xls in asccii-txt file wandeln ?
29.01.2009 17:56:00
Thomas
Guten Tag,
wir haben hier eine Excel Datei mit 10 Spalten und 5 Zeilen.
Mit einem Klick soll aus diesen 10 Spalten und 5 Zeilen eine ASCCII Datei erstellt werden,
Wobei die einzelnen Spalteninhalte an einer bestimmten Stelle in der ASCCII Datei stehen müssen.
zB. Spalte 1-5 soll ab der ersten Stelle in der Asccii Datei stehen. Die Spalte 6-8 soll an der Stelle 45 in
der Asccii Datei stehen. An der Stelle 767 soll ein Zeilenumbruch erfolgen, bzw. die neue Zeile beginnen.
Kennt sich damit jemand aus. Wir haben schon mit der Datei SCHEMA.ini experimentiert. Bringen aber
die Datei nicht so richtig zum laufen.
Wir suchen für die SCHEMA.ini den Befehl der in der *.txt Datei für den Zeilenumbruch zuständig ist.
Bsp:
[Muster.txt]
ColNameHeader=False
Format=FixedLength
MaxScanRows=0
CharacterSet=ANSI
NumberDigits=3
Col1= Feld1 Integer Width 7
Col2= Feld2 Char width 15
...
Wir sind für jeden Tipp dankbar.
Thomas

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

Betreff
Datum
Anwender
Anzeige
AW: xls in asccii-txt file wandeln ?
29.01.2009 18:24:37
Tino
Hallo,
ganz einfach, erzeuge einfach Strings mit fester länge und schreibe Deine Daten in diesen String.
Wahrscheinlich hast Du am Ende mehrere Strings mit unterschiedlicher Länge und
diese fügst Du zusammen.
Beispiel:

Dim strText1 As String * 44
With Application
strText1 = Join(.Transpose(.Transpose(Range("A1:E1"))), vbTab)
End With
Debug.Print Len(strText1), strText1


Gruß Tino

hier ein Beispiel.
29.01.2009 19:28:00
Tino
Hallo,
habe Dir mal ein Beispiel aufgebaut.
Ich verstehe nur nicht wie Du auf 10 Spalten kommst,
ich komme nach Deinen Angaben nur auf 8 + ein Zeilenumbruchzeichen.
Option Explicit

Sub SaveAs_Textfile()
Dim strText1 As String * 44
Dim strText2 As String * 722
Dim strTemp As String
Dim F As Integer, A As Long
Dim strSpeicherPfad As String

'Speicherort vorgeben******* 
ChDrive "C:\"
ChDir "C:\Neuer Ordner"

'Dialog speichern unter 
strSpeicherPfad = Application.GetSaveAsFilename("MeineTextDatei.txt", "Textdateien (*.txt), *.txt", , "TextFile speichern unter:")

'Abbrechen gedrückt 
If strSpeicherPfad = "Falsch" Then
 MsgBox "Verarbeitung vom Benutzer abgebrochen!", vbInformation
 Exit Sub
End If

'Sicherheitsabfrage, Datei schon vorhanden 
If Dir$(strSpeicherPfad, vbDirectory) <> "" Then
 If MsgBox("Datei existiert schon! Wollen Sie diese Daten wirklich überschreiben?", vbYesNo) = vbNo Then
  MsgBox "Verarbeitung vom Benutzer abgebrochen!", vbInformation
  Exit Sub
 End If
End If

'Text zusammensetzen 
For A = 1 To 5 '5 Zeilen 
    With Application
        strText1 = Join(.Transpose(.Transpose(Range("A" & A & ":E" & A))), ";") 'Spalte A-E 
        strText2 = Join(.Transpose(.Transpose(Range("F" & A & ":H" & A))), ";") 'Spalte F-H 
        strTemp = strTemp & strText1 & strText2 & vbCrLf
    End With
Next A

'Zeilenumbruch am ende entfernen 
strTemp = Left$(strTemp, Len(strTemp) - 1)

'Textdatei speichern 
  F = FreeFile
  Open strSpeicherPfad For Output As #F
  Print #F, strTemp
  Close #F

'Information 
MsgBox "Die Textdatei:" & Chr(13) & strSpeicherPfad & Chr(13) & "wurde erfolgreich gespeichert!"


End Sub


Gruß Tino

Anzeige
AW: Textfile-Ausgabe mit festem Format
29.01.2009 20:20:12
Erich
Hallo Thomas,
was meinst du mit "Bringen aber die Datei nicht so richtig zum laufen"?
Die Gesamt-Satzlänge kannst du dadurch erreichen, dass du in der Ini als letztes Feld ein Char einträgst,
das den Satz bis zum vorgesehenen Ende mit Leerstellen auffüllt.
Einen "Befehl" für den Zeilenumbruch gibt es wohl nicht - da kenne ich mich aber nicht aus!
Wenn man das per VBA machen wollte, gäbe es noch einige spannende Fragen:
Der Satzaufbau würde am besten in einer Tabelle abzulegen - ähnlich wie die COLx-Zeilen in der Schema.ini
Sollen Zahlen rechts- und Texte linksbündig in den Feldern stehen?
Gibt es Dezimalzahlen? Wie soll dann das Komma ausgegeben werden?
Wo sollen Vorzeichen ausgegeben werden? (1. Stelle eines Feldes, direkt vor 1. Ziffer, Ende des Feldes?
Soll beim Vorzeichen nur "-" oder auch "+" ausgegeben werden?
Mehr fällt mir momentan nicht ein, könnte aber noch kommen...
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige