Ergebnis 1 bis 6 von 6

Thema: Tabelle in Textdokument

  1. #1
    Erfahrener Benutzer Profi Member
    Registriert seit
    14.12.2011
    Beiträge
    4.141

    Standard Tabelle in Textdokument

    Hallo Miteinander,

    um den Überblick über unsere Kochzeitschriften zu erhalten habe ich die Inhaltsverzeichnisse der Zeitschriften eingescannt und per OCR-Software in eine LibreCalc Tabelle gebracht.
    Jetzt könnte man ja schon mal nach einem Rezept suchen.

    Allerdings habe ich ein kleines Programm in dem ich meine Gewürzrezepte und ähnliches gespeichert habe so kam die Idee auf ob man nicht auch die Tabelle der Kochzeitschriften da einpflegen könnte.

    Das Problem ist dass man in dem Programm für jeden Datensatz ein eigenes Textdokument braucht (und es sind viele)

    Hat jemand eine Idee wie ich jeden Datensatz (Zeile) in ein eigenes Textdokument bringe und auch noch vor jeder Zeile dort ein doppelter Doppelpunkt geschrieben wird?

    Hier der Screenshot meiner Tabelle
    Rezept-Tabelle.jpg

    und hier wie es danach im Textdokument aussehen soll
    Rezept-Editor.jpg

    nochmal in groß
    Rezept-Editor-gr.jpg

    Gruß
    Norre
    Geändert von norre (26.12.2017 um 18:04 Uhr)
    Benachrichtigung bei neuen Antworten, schau --> HIER

    Alle Angaben ohne Gewähr
    .
    Win7 64bit & Win8.1 - Corel Suite X6.4 (32bit) mit X6.4Hotfix1 - ein paar alte Corel Draw und Photopaint Versionen schwirren auch noch rum

  2. #2
    Erfahrener Benutzer Profi Member
    Registriert seit
    24.03.2012
    Beiträge
    932

    Standard

    Hallo Norre,

    So könnte es klappen:



    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
    W7pro|Corel X4/X7(64 Bit)

  3. #3
    Erfahrener Benutzer Profi Member
    Registriert seit
    14.12.2011
    Beiträge
    4.141

    Standard

    Hallo Koter,

    wow, vielen, vielen Dank für deine Hilfe

    werde es am Wochenende verwenden und dann auch Rückmeldung geben.

    Gruß
    Norre
    Geändert von norre (27.12.2017 um 13:51 Uhr)
    Benachrichtigung bei neuen Antworten, schau --> HIER

    Alle Angaben ohne Gewähr
    .
    Win7 64bit & Win8.1 - Corel Suite X6.4 (32bit) mit X6.4Hotfix1 - ein paar alte Corel Draw und Photopaint Versionen schwirren auch noch rum

  4. #4
    Erfahrener Benutzer Profi Member
    Registriert seit
    14.12.2011
    Beiträge
    4.141

    Standard

    Hallo Koter,
    habe doch nicht warten können das auszuprobieren.
    Nach den starten der VBS Datei wird die Rezepte1.csv angelegt dann kommt allerdings diese Fehlermeldung

    Fehlermeldung.jpg

    kannst du mir nochmal unter die Arme greifen?
    Hier noch mein abgeänderter Pfad
    Pfad.jpg

    Gruß
    Norre
    Geändert von norre (27.12.2017 um 14:31 Uhr)
    Benachrichtigung bei neuen Antworten, schau --> HIER

    Alle Angaben ohne Gewähr
    .
    Win7 64bit & Win8.1 - Corel Suite X6.4 (32bit) mit X6.4Hotfix1 - ein paar alte Corel Draw und Photopaint Versionen schwirren auch noch rum

  5. #5
    Erfahrener Benutzer Profi Member
    Registriert seit
    24.03.2012
    Beiträge
    932

    Standard

    Hallo Norre,

    meine Schuld, ich habe nicht geschrieben, dass Die CSV-Datei „Rezepte1.csv“ heißen muss.
    Du kannst Deine CSV umbenennen oder das Script in Zeile 7 ändern (CSVA = CSVArray(Pfad & "Rezeptarchiv.csv"))
    Die vom Script erstellte „Rezepte1.csv“ kannst Du löschen.

    Wenn Du noch öfter solche Dateien erzeugen musst, sollten wir uns vielleicht einen eleganteren Weg überlegen.

    Gruß

    Koter

    Nachtrag:
    Die Schlamperei geht weiter: Das Script schreibt einen einfachen Doppelpunkt!
    Zeile 11 muss auch geändert werden:
    MyFile.WriteLine ("::" & CSVA(i, k))

    Es grüßt verschämt: Koter
    Geändert von koter (27.12.2017 um 16:16 Uhr) Grund: Schlamperei
    W7pro|Corel X4/X7(64 Bit)

  6. #6
    Erfahrener Benutzer Profi Member
    Registriert seit
    14.12.2011
    Beiträge
    4.141

    Standard

    Hallo,
    jetzt funktioniert es wunderbar, nochmals Danke

    Auf den Namen hätte ich laut deinem Screenshot auch selber draufkommen können und es war eine einmalige Sache die Inhaltsverzeichnisse sind eingeflegt da wird jetzt nichts mehr dazukommen.

    Gruß
    Norre
    Benachrichtigung bei neuen Antworten, schau --> HIER

    Alle Angaben ohne Gewähr
    .
    Win7 64bit & Win8.1 - Corel Suite X6.4 (32bit) mit X6.4Hotfix1 - ein paar alte Corel Draw und Photopaint Versionen schwirren auch noch rum

Ähnliche Themen

  1. Tabelle ausfüllen?
    Von Eichhorn im Forum Corel Draw
    Antworten: 4
    Letzter Beitrag: 19.12.2014, 21:21
  2. Tabelle erstellen?
    Von Tüfftele im Forum Corel Draw
    Antworten: 4
    Letzter Beitrag: 24.04.2014, 22:29
  3. CD X6.1 Tabelle
    Von norre im Forum Corel Draw
    Antworten: 0
    Letzter Beitrag: 26.08.2012, 15:28
  4. Tabelle einfügen
    Von RobertP im Forum Corel Draw
    Antworten: 3
    Letzter Beitrag: 20.06.2007, 14:29
  5. Tabelle gezerrt
    Von udog im Forum Rund um HTML
    Antworten: 6
    Letzter Beitrag: 04.04.2004, 20:22

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •