Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1260to1264
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

Export in ascII-Datei mit fixer Feldlänge

Export in ascII-Datei mit fixer Feldlänge
Patrick
Hallo Expertenrunde,
leider finde ich eine Lösung zu meinem Problem in keinem Forum. Ist es zu einfach?
Ich muss aus einer Exceldatei 10 Spalten (M bis V) in eine txt-Datei exportieren. Allerdings soll in der Textdatei anschließend die Excelspalte M von Spalte 1 bis 10 gehen, rechtsbündig sein und das Format "einstellige Zahl" ausweisen.
Die Excelspalte B dann wiederum soll von 11 bis 21 gehen, rechtsbündig sein und das Format "4 Vorkommastellen und sechs Nachkommastellen" ausweisen usw...
Wer kann mir auf die Sprünge helfen? Danke!
AW: Export in ascII-Datei mit fixer Feldlänge
26.04.2012 11:35:47
Sheldon
Hallo Patrick,
in Textdateien gibt es keine Spalten, somit kannst du auch keine Spalte M in deiner Textdatei von Spalte 1 bis 10 gehen lassen.
Zahlenformat Einstellige Zahl? Wieso willst du das extra angeben, sind die Quelldaten zum Exportieren denn keine einstelligen Zahlen? Was passiert mit der Zahl 27 wenn du sie als einstellige Zahl darstellen willst? Jedenfalls gibt es auch kein Zahlenformat in txt-Dateien, du musst die Zahlen bereits so in die Datei speichern, wie sie dargestellt werden sollen. Vier Vorkommastellen z.B. ggf. mit führenden Nullen auffüllen, bis zur vierten Nachkommastelle runden. Was passiert hier mit 10523?
Gruß
Sheldon
Anzeige
AW: Export in ascII-Datei mit fixer Feldlänge
26.04.2012 11:58:51
Patrick
Ok. Danke für die schnelle Antwort. Sie zeigt mir, dass ich mein Problem zu ungenau beschrieben habe.
In der Excel-Tabelle steht folgendes:
M5: 5
N5: 2222,333333
O5: 444444,555555
Diese Zahlenformate sind fix! In M5 kann z.B. keine zweistellige Zahl stehen.
Nun muss ich diese Werte in eine ascII-Datei exportieren (zu öffnen mit Texteditor), die dann so aussehen soll:
1234567890123456789012345678901234567890 (Zahlen nur zum Orientieren in der ascII-Datei!)
5 2222.333333 444444.555555
Ist meine Frage nun verständlicher?
Gruß Patrick
AW: Export in ascII-Datei mit fixer Feldlänge
26.04.2012 11:54:36
Mark
Hallo Patrick,
dein Aufgabenstellung ist für mich leider unverständlich!
Willt Du die Textdaei vormatieren? Oder anschließend wieder in Excel importieren.
Wenn ja, warum erzeugst Du nicht gleich eine neue Exceldatei?
Fragen über Fragen.
Gruß
Mark
Anzeige
AW: Export in ascII-Datei mit fixer Feldlänge
26.04.2012 12:18:42
Patrick
Hallo Mark,
ich muss Zahlenmaterial aus Gleisbauplänen in Excel eingeben, dort ein paar Berechnungen machen und dann diese Werte wieder in eine ascII-Datei exportieren. Hier brauch ich dann ein spezielles Format für die einzelnen Werte um damit einen reibungslosen Übergang (Import) zum eigentlichen Programm für Gleisberechnungen zu ermöglichen.
okay?
Gruß,
Patrick
AW: Export in ascII-Datei mit fixer Feldlänge
26.04.2012 12:40:28
Rudi
Hallo,
mal als Ansatz:
Private Sub aaa()
Dim lngRow As Long, strExport As String
Open "c:\test\export.txt" For Output As #1
For i = 1 To Cells(Rows.Count, 13).End(xlUp).Row
strExport = Right(String(10, " ") & Cells(i, 13), 10)
strExport = strExport & Right(String(11, " ") & Format(Cells(i, 14), "0.000000"), 11)
'und so weiter bis Spalte 22 (V)
Print #1, strExport
Next i
End Sub

Gruß
Rudi
Anzeige
AW: Export in ascII-Datei mit fixer Feldlänge
26.04.2012 12:40:41
bst
Auch Hallo,
versuche das mal so ähnlich.
cu, Bernd
--
Option Explicit
Sub WriteFixedText()
Dim varFile As Variant
Dim intHandle As Integer
Dim i As Long, j As Integer
Dim arIn As Variant, arOut(0 To 9) As String, arWidth As Variant, strWidth(0 To 9) As String
varFile = Application.GetSaveAsFilename("default", "Textdateien (*.txt),*.txt")
If varFile = False Then Exit Sub
' 10 Breiten für die 10 Spalten, > 0 = rechtsbündig,  0 Then
strWidth(j) = String(arWidth(j), "@")
Else
strWidth(j) = "!" & String(-arWidth(j), "@")
End If
Next
' Array mit 10 Spalten ab Zelle M1
arIn = Range("M1").Resize(Cells(Rows.Count, 13).End(xlUp).Row - 1, 10).Value
intHandle = FreeFile
Open varFile For Output As #intHandle
For i = 2 To UBound(arIn)        ' Überschrift aus Zeile 1 ignorieren
For j = 0 To 9                ' 10 Spalten
arOut(j) = Format(arIn(i, j + 1), strWidth(j))
Next
Print #intHandle, Join(arOut, " ")
Next
Close #intHandle
End Sub

Anzeige
AW: Export in ascII-Datei mit fixer Feldlänge
26.04.2012 14:39:35
Patrick
:-)
Herzlichen Dank! Ich habe mal die (augenscheinlich) einfachere Variante von Rudi gewählt und bin sehr begeistert! Die variante von Bernd habe ich noch nicht so durchblickt.
Und auch wenn das gerade nicht mehr zu meiner Betreffzeile passt....aber ihr wisst nicht zufällig auch noch, wie ich in die erste Zeile meiner ascII-Datei eine einfache Textzeile (als Text formatiert in "A1") bekomme?
Gruß,
Patrick
AW: Export in ascII-Datei mit fixer Feldlänge
26.04.2012 15:07:55
Rudi
Hallo,
aber ihr wisst nicht zufällig auch noch, wie ich in die erste Zeile meiner ascII-Datei eine einfache Textzeile (als Text formatiert in "A1") bekomme?
sicher weiß ich das.
Private Sub aaa()
Dim lngRow As Long, strExport As String
Open "c:\test\export.txt" For Output As #1
  Print #1, Range("A1")
For i = 1 To Cells(Rows.Count, 13).End(xlUp).Row
strExport = Right(String(10, " ") & Cells(i, 13), 10)
strExport = strExport & Right(String(11, " ") & Format(Cells(i, 14), "0.000000"), 11)
'und so weiter bis Spalte 22 (V)
Print #1, strExport
Next i
End Sub

GFruß
Rudi
Anzeige
AW: Export in ascII-Datei mit fixer Feldlänge
26.04.2012 15:11:43
Patrick
Danke!
...und wenn man die Lösung sieht...dann wirkt es so einfach! ;-)
Gruß,
Patrick

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige