Tabelle in Textdokument
#2
Hallo Norre,

So könnte es klappen:

[Bild: rezepteqlpx2.gif]

Erstelle eine leere Textdatei, füge den VBS-Code ein, passe die Variable „Pfad“ an
und ändere dann die Erweiterung in ".vbs".
Exportiere die Tabelle als CSV-Datei mit dem Semikolon als Feldtrenner.
Starte die VBS-Datei.

Code:
Dim CSVA
Dim fso, MyFile

Pfad = "C:\temp\corelforum\Norre\Rezepte\"

Set fso = CreateObject("Scripting.FileSystemObject")
CSVA = CSVArray(Pfad & "Rezepte1.csv")
For i = 1 To UBound(CSVA)
    Set MyFile = fso.CreateTextFile(Pfad & "Datensatz" & i & ".txt", True)
    For k = 0 To UBound(CSVA, 2)
        MyFile.WriteLine (":" & CSVA(i, k))
    Next
    MyFile.Close
Next


Function CSVArray(CSVFile)

  Dim comma, quote
  comma = ";"
  quote = Chr(34)

  Dim charPos, charVal

  Dim cellPos, colMax, colNum
  colMax = -1
  
  Dim cellArray(), cellComplete, cellQuoted, csvRecord

  Dim inCsvSys, inCsv, inRow(), rowCount
  rowCount = -1
  Set inCsvSys = CreateObject("Scripting.FileSystemObject")
  Set inCsv = inCsvSys.OpenTextFile(CSVFile, "1", True)
  Do While Not inCsv.AtEndOfStream
    rowCount = rowCount + 1
    ReDim Preserve inRow(rowCount)
    inRow(rowCount) = inCsv.ReadLine
  Loop
  inCsv.Close

  For r = 0 To rowCount
  
    csvRecord = inRow(r)
    colNum = -1
    charPos = 0
    cellComplete = True
    
    Do While charPos < Len(csvRecord)

      If (cellComplete = True) Then
        colNum = colNum + 1
        cellPos = 0
        cellQuoted = False
        cellComplete = False
        If colNum > colMax Then
          colMax = colNum
          ReDim Preserve cellArray(rowCount, colMax)
        End If
      End If

      charPos = charPos + 1
      cellPos = cellPos + 1
      charVal = Mid(csvRecord, charPos, 1)
      If (charVal = quote) Then
        If (cellPos = 1) Then
          cellQuoted = True
          charVal = ""
        Else
          Select Case Mid(csvRecord, charPos + 1, 1)
          Case quote
            charPos = charPos + 1
          Case comma
            charPos = charPos + 1
            cellComplete = True
          End Select
        End If
      ElseIf (charVal = comma) And (cellQuoted = False) Then
        cellComplete = True
      End If
      If (cellComplete = False) Then
        cellArray(r, colNum) = cellArray(r, colNum) & charVal
      End If

    Loop

  Next
  CSVArray = cellArray
End Function

Die Funktion „CSVArray“ stammt aus diese Quelle.

Gruß

Koter
Zitieren



Nachrichten in diesem Thema
Tabelle in Textdokument - von norre - 26.12.2017, 17:06
Tabelle in Textdokument - von koter - 26.12.2017, 21:51
Tabelle in Textdokument - von norre - 27.12.2017, 10:49
Tabelle in Textdokument - von norre - 27.12.2017, 15:28
Tabelle in Textdokument - von koter - 27.12.2017, 17:08
Tabelle in Textdokument - von norre - 27.12.2017, 18:44