🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Probleme beim konvertieren von .csv zu .txt-basiertem Format

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Held_der_Arbeit
Beiträge: 16
Registriert: Mo 12. Aug 2013, 12:11

Re: Probleme beim konvertieren von .csv zu .txt-basiertem Fo

Beitrag von Held_der_Arbeit » Do 15. Aug 2013, 18:37

oleander hat geschrieben: Ohne eine funktionierende mt-Datei vorliegen zu haben werden wir hier nicht weiterkommen.
Hoffen wir mal das es als .zip funktioniert :)

Diese Datei als .csv (oder vergleichbares calc format) öffnen, editieren, und speichern so das es am Ende im Editor aussieht wie vorher und nicht alles mit Feldtrennern überschwemmt ist, ist das Ziel
Dateianhänge
MT-File.zip
(75.01 KiB) 275-mal heruntergeladen

oleander
Beiträge: 125
Registriert: Di 30. Jul 2013, 17:23

Re: Probleme beim konvertieren von .csv zu .txt-basiertem Fo

Beitrag von oleander » Fr 16. Aug 2013, 09:23

MT-Datei kam exakt rüber. Nehme an, sie wurde von dem schon erwähnten Spezialprogramm erstellt.

Mit calk bin ich noch nicht weitergekommen, aber mit writer funktioniert es (im TEXT-Format speichern).
.
Windows 10 Home, Vers. 1903; LibreOffice Version 6.3.4.2.(x64)

Held_der_Arbeit
Beiträge: 16
Registriert: Mo 12. Aug 2013, 12:11

Re: Probleme beim konvertieren von .csv zu .txt-basiertem Fo

Beitrag von Held_der_Arbeit » Fr 16. Aug 2013, 11:07

Ja die ist aus dem Spezialprogramm (daher die seltsame Endung). Calc wäre halt super, weil es doch sehr viele Daten sind und man sie im Tabellenformat + Formeln viel leichter editieren kann

bst
Beiträge: 35
Registriert: Mi 25. Apr 2012, 13:40
Wohnort: Ilsfeld

Re: Probleme beim konvertieren von .csv zu .txt-basiertem Fo

Beitrag von bst » Fr 16. Aug 2013, 13:15

Hi,

versuche das Abspeichern vielleicht mal mit Makro. Also z.B. so ähnlich.

HTH, Bernd
--

Code: Alles auswählen

Option Explicit

Sub Main
   dim strOutFile as String
   dim iHandle as Integer
   dim oSheet as Object
   dim iMax as Long, i as Long
   dim jMax as integer, j as Integer
   dim ar as Variant
   
   strOutFile = ThisComponent.getUrl() & ".neu"
   iHandle = FreeFile
   
   open strOutFile For Output As #iHandle
   
   oSheet = ThisComponent.currentController.ActiveSheet
   iMax =   getLastRowInColumn(oSheet, 0)
   
   For i = 0 To iMax
      jMax = getLastColumnInRow(oSheet, i)
      if jMax < 0 Then
         print #iHandle
      elseif jMax = 0 then
         print #iHandle, oSheet.getCellByPosition(0,i).String
      else
         redim ar (0 To jMax)
         for j = 0 to jMax
            ar(j) = replace(oSheet.getCellByPosition(j,i).String, ",", ".")
         next
         if i = 0 Then
            print #iHandle, Join(ar, ",")
         else
            print #iHandle, Join(ar, ",") & ","
         end if
      end if
    Next

   close #iHandle
End Sub

Function getLastRowInColumn(oSheet as Object, iColumn as Long) as Long
   dim oUsedCells as Object
   
   oUsedCells = oSheet.Columns(iColumn).queryContentCells(23)
   if oUsedCells.count > 0 Then
      getLastRowInColumn = oUsedCells.RangeAddresses(oUsedCells.Count-1).endRow
   else
      getLastRowInColumn = -1
   end if
End Function

Function getLastColumnInRow(oSheet as Object, iRow as Long) as Long
   dim oUsedCells as Object
   
   oUsedCells = oSheet.Rows(iRow).queryContentCells(23)
   if oUsedCells.count > 0 Then
      getLastColumnInRow = oUsedCells.RangeAddresses(oUsedCells.Count-1).endColumn
   else
      getLastColumnInRow = -1
   end if
End Function

Held_der_Arbeit
Beiträge: 16
Registriert: Mo 12. Aug 2013, 12:11

Re: Probleme beim konvertieren von .csv zu .txt-basiertem Fo

Beitrag von Held_der_Arbeit » Fr 16. Aug 2013, 22:28

Wow, sowas hab ich noch nie benutzt. Wo füge ich das korrekt ein?

oleander
Beiträge: 125
Registriert: Di 30. Jul 2013, 17:23

Re: Probleme beim konvertieren von .csv zu .txt-basiertem Fo

Beitrag von oleander » Sa 17. Aug 2013, 18:27

Um das Makro zu schreiben:
Extras / Makros / Makros verwalten / LibreOffice Basic / Verwalten / Neu
dann schreiben und Anweisungen folgen.

Bei LibreOffice habe ich selbst noch nicht mit Makros gearbeitet. Auch verstehe ich basic nicht so weit, daß ich beurteilen könnte, was Bernds Makro macht. Es müßte praktisch von rechts gesehen her zeilenweise alle Kommas löschen, bis es auf eine Zelle mit Inhalt stößt.

Vielleicht könnten Sie mit dem "kommaüberfluteten" Programm auch ein bißchen experimentieren, z. B. mal nur in den ersten paar Zeilen die überflüssigen Kommas manuell löschen (aus writer heraus) - vielleicht stört sich das Programm ja nur an einer unpassenden Startsequenz. Andere Möglichkeiten für calc fallen mir momentan nicht ein.
.
Windows 10 Home, Vers. 1903; LibreOffice Version 6.3.4.2.(x64)

Benutzeravatar
miesepeter
* LO-Experte *
Beiträge: 2136
Registriert: So 19. Dez 2010, 18:16
Wohnort: Bayern

Re: Probleme beim konvertieren von .csv zu .txt-basiertem Fo

Beitrag von miesepeter » So 18. Aug 2013, 07:31

Hallo,
wenn du in der ersten Zeile die Strichpunkte in Kommata umwandelst, dann lässt sich die Datei verlustfrei einlesen (Texteditor), Komma als Trenner definieren.
Du kannst auch im Editor nach dem Ersetzen der Strichpunkte den gesamten Text kopieren und dann in Calc einfügen.
Ciao

Held_der_Arbeit
Beiträge: 16
Registriert: Mo 12. Aug 2013, 12:11

Re: Probleme beim konvertieren von .csv zu .txt-basiertem Fo

Beitrag von Held_der_Arbeit » So 18. Aug 2013, 10:05

miesepeter hat geschrieben:Hallo,
wenn du in der ersten Zeile die Strichpunkte in Kommata umwandelst, dann lässt sich die Datei verlustfrei einlesen (Texteditor), Komma als Trenner definieren.
Du kannst auch im Editor nach dem Ersetzen der Strichpunkte den gesamten Text kopieren und dann in Calc einfügen.
Ciao
Hi,
Versteh ich dich richtig das man erst die .mt datei im texteditor öffnen soll, dann die Semikolons in der ersten Zeile durch Kommas ersetzen und das ganze dann in Calc laden?
Das funktioniert zwar, aber das Problem um das es geht entsteht ja erst beim abspeichern in Calc - nämlich das er die gespeicherte .csv datei dann eben mit Feldtrennern (Kommas) überschwemmt.

Ich brauche also nicht Hilfe beim übertragen von einem Texteditor-Format in Calc, sondern andersherum: Calc Daten zurück in den Texteditor

Benutzeravatar
lorbass
* LO-Experte *
Beiträge: 627
Registriert: Mo 25. Apr 2011, 18:17

Re: Probleme beim konvertieren von .csv zu .txt-basiertem Fo

Beitrag von lorbass » So 18. Aug 2013, 15:28

Hier geht's ja munter durcheinander. Ich versuch's trotzdem ;)

Die vielen Kommas kommen zustande, weil Calc sich an dem „breitesten“ Datensatz orientiert. Da es Sätze gibt, die bis in die Spalte FF reichen, werden eben alle Datensätze mit 162 Spalten ausgegeben. Von denen, die leer sind, bleiben nur die Kommas als Trennzeichen.

Mit einem Texteditor wie dem bereits mehrfach angesprochenen Notepad++, der reguläre Ausdrücke beherrscht, kannst du alle Kommas, die der letzten benutzten Spalte eines Satzes folgen, löschen:
  • Suchen nach: ,+$
  • Ersetzen durch: <leer lassen>
  • [] Regulärer Ausdruck
  • [Ersetze alle]
Das Ergebnis kann nach dem Speichern problemlos mit Calc wieder geöffnet werden.

Da ich mit GNU/Linux arbeite, kann ich das mit dem Notepad++ hier nicht testen. Da der reguläre Ausdruck aber einer der simpelsten ist, müsste der das leisten.

Gruß
lorbass


PS: Eine „saubere“ csv-Datei ist was anderes. Peter hat also schon recht mit dem, was er in seinem Beitrag sagt:
pmoegenb hat geschrieben:kommt Schrott rein, kommt Schrott wieder raus.

Held_der_Arbeit
Beiträge: 16
Registriert: Mo 12. Aug 2013, 12:11

Re: Probleme beim konvertieren von .csv zu .txt-basiertem Fo

Beitrag von Held_der_Arbeit » So 18. Aug 2013, 20:32

Notepad ++ hat funktioniert. Ich hatte mich da vorher nicht rangetraut, deshalb danke nochmal lorbass für die step by step Anleitung.

Danke auch an alle anderen für die vielen Tipps und Vorschläge


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten