Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Visual Basic 6.0 / VBA » Textdatei importieren und exportieren

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
20.10.2004, 10:39 Uhr
~_tobi_
Gast


Hallo Leute,

heute habe ich mal wieder ein neues Problem:

ich hab in meiner Excel- Tabelle mit VBA eine Textdatei, in der die Daten mithilfe von Kommas und Leerzeichen getrennt sind, importiere. Dann verändere ich ein paar daten und möchte dann wieder die Textdatei "exportieren" oder als txt abspeichern. Das geht auch soweit, bis auf dass jetzt die Kommas zwischen den einzelnen Positionen fehlen.

hat einer eine Idee, wie man das wieder so exportieren kann wie man es importiert ??


so denn

Tobi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.10.2004, 21:37 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


das excel kann direct als csv speichern, schau mal bei SaveAs nach
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
21.10.2004, 13:01 Uhr
~_tobi_
Gast


ich weiss; aber als *.csv wollte ich das ja gar nicht abspeichern, sondern als *.txt- Datei. Ich möchte diese Textdatei nur bearbeiten und wieder speichern - und das mit Excel.

Damit ich aber die Kommata (vorher als Trennzeichen angegeben) wieder in meiner Textdatei wiederfinde, muss ich nen Algorithmus nutzen, der das macht:


Visual Basic:
Sub TextdateiSchreiben()
   Dim fso As Object
   Dim txt As Object
   Dim z As Integer
   Dim s As Integer
   Dim temp As String
  
   Worksheets("Daten").Activate
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set txt = fso.CreateTextFile("D:\MeineSachnummer.txt", True)
      For z = 1 To ActiveSheet.UsedRange.Rows.Count
         For s = 1 To ActiveSheet.UsedRange.Columns.Count
            If Cells(z, s) <> "" Then temp = temp & Cells(z, s) & ","
         Next s
            If temp <> "" Then
               txt.writeline temp
               temp = ""
            End If
      Next z
   Set fso = Nothing
   Set txt = Nothing
   MsgBox "Die Textdatei ""MeineSachnummer.txt""" & _
          " wurde erfolgreich erstellt"
End Sub



Nachteil: JEDER Zellinhalt wird mit Komma- Zeichen separiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
21.10.2004, 17:25 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja du kannst doch den Typ "csv" beim speichern angeben und dann einfach den dateinamen .txt nennen, dann hast du doch was du willst?!?

Oder benenn im notfall die csv-datei einfach in txt um ^^
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
21.10.2004, 21:14 Uhr
~_tobi_
Gast


ja, natürlich ginge das... ABER:

das eigentliche problem ist, das der csv- export Kommas als Trennzeichen verwendet (wer hätte das gedacht ? :-)), ich aber beim Import auch Leerzeichen als Trennzeichen angeben MUSS! Somit ist die ursprüngliche Formatierung der Textdatei dahin, weil ich ja nicht mehr weiss, wo vorher Leerzeichen und Kommas waren...

Bsp:
Import:

WertA 12.12,441.1,98.5
WertB 145.45,124.1,124.4

Export (csv)

WertA,12.12,441.1,98.5
WertB,145.45,124.1,124.4

Die schönste Möglichkeit wäre die, wenn Excel sich merken würde, wo vorher Leerzeichen und Kommas standen :-)

Tobi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
22.10.2004, 09:30 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hmm das kann es natürlich nicht. Du musst dann halt die Datei als binär öffnen und die werte in die datei schreiben. eben entweder mit komma oder leerzeichen. Irgendwo muss es ja erkennbar sein welche Werte ein komma und welche ein leerzeichen hatten (bei dir schauts so aus als wär immer der erste wert mit leerzeichen, der rest mit kommas?)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
30.10.2004, 19:19 Uhr
~_tobi_
Gast


@FloSoft:

ich hab das ganze Projekt nochmal durchdacht, abgeändert und jetzt einen Konverter in c gemacht... So hab ich die ganze Sache in zwei Teile geteilt..

Doch praktisch wäre das schon wenn man sich beim Import merken könnte, wann ein Komma und wann ein Leerzeichen als Trennzeichen erkannt bzw. verwendet wurde... Ist glaub ich was für lange Winternächte

Trotzdem vielen Dank

Tobi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Visual Basic 6.0 / VBA ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: