Problem mit Änderung in Zeile
-
Lässt sich nur mit TextPad öffnen und finde dort keine Funktion dafür.
-
Eigentlich falsches Werkzeug. awk, sed, Python & Co. sind allesamt tausendmal besser geeignet und könnten das in wenigen Zeilen Code erledigen. Die Aufgabe ist zudem wahrscheinlich auch noch unnötig, da ich den Eindruck habe, du willst die Liste in ein Format bringen, das Excel besser gefällt. Excel kann aber sicher auch von Haus aus mit beliebigen Trennzeichen (sowohl für Listen als auch für Dezimalstellen) umgehen.
Dein derzeitiger Code hat auch nicht viel mit der Aufgabenstellung zu tun. Was soll das? Der sieht so aus als wolle er ein paar Zahlen aus einer Datei addieren, was überhaupt nicht passt. Selbst dein Codeschnippsel zum Tausch Komma gegen Semikolon ist voller Fehler. Kannst du überhaupt C++ oder hast du das bloß zusammenkopiert?
Das Problem formuliert sich wie folgend:
0. Falls fertig gehe zu 12.
1. Lasse alles bis zum Komma gleich.
2. Ersetze Komma durch Semikolon.
3. Lasse alles bis zum Komma gleich.
4. Ersetze Komma durch Semikolon.
5. Lese alles bis zum nächsten Komma.
6. Ersetze darin einen möglichen Punkt durch ein Komma.
7. Gib das so veränderte aus, anschließend ein Semikolon.
8. Lese alles bis zum nächsten Zeilenumbruch.
9. Ersetze darin einen möglichen Punkt durch ein Komma.
10. Gib das so veränderte aus, einschließlich eines Zeilenumbruchs.
11. Zurück zu 0.
12. Ende.So formuliert sollte sich das auch in C++ recht einfach machen lassen. Natürlich mit 50-100 Zeilen anstatt mit 5-10 wie in Textverarbeitungssprachen.
-
Das ist aus einem vorherigen Code von mir, zum kopieren einer Datei, in der Zeile für Zeile _einzelne_ Werte zusätzlich addiert etc. werden.
Man kann die Summe wegstreichen im Beispiel.SeppJ schrieb:
Kannst du überhaupt C++ oder hast du das bloß zusammenkopiert?
Bin dabei, es zu lernen.
SeppJ schrieb:
Das Problem formuliert sich wie folgend:
0. Falls fertig gehe zu 12.
1. Lasse alles bis zum Komma gleich.
2. Ersetze Komma durch Semikolon.
3. Lasse alles bis zum Komma gleich.
4. Ersetze Komma durch Semikolon.
5. Lese alles bis zum nächsten Komma.
6. Ersetze darin einen möglichen Punkt durch ein Komma.
7. Gib das so veränderte aus, anschließend ein Semikolon.
8. Lese alles bis zum nächsten Zeilenumbruch.
9. Ersetze darin einen möglichen Punkt durch ein Komma.
10. Gib das so veränderte aus, einschließlich eines Zeilenumbruchs.
11. Zurück zu 0.
12. Ende.So formuliert sollte sich das auch in C++ recht einfach machen lassen. Natürlich mit 50-100 Zeilen anstatt mit 5-10 wie in Textverarbeitungssprachen.
Ok, vielen Dank, bisher nicht drauf gekommen, aber sinnvoll. Bin auf meiner Suche bisher immer nur Beispielen mit find(), replace() und alles gekommen, was ich aber leider noch nicht realisieren konnte.
Ich glaube jetzt bekomme ich das hin, danke
-
xStrykex schrieb:
if(Wert = '.') { Wert = ','; } else if(Wert = ',') { Wert = ';'; }Das wird so nicht funktionieren.
-
...
-
Der TE wollte es nicht nur vom STDIN einlesen und ein paar Zeichen ersetzen, sondern das Ganze auch wieder als Excel-File (.xls) Paketweise ausgeben.
Und das braucht noch etwas mehr als deine 40 Zeilen.
-
Da das Format ja ziemlich konstant erscheint, warum nicht http://ideone.com/rW45zc ?
-
Dies ist länger, speichert aber nicht so viel zwischen und braucht kein find:
http://ideone.com/kvyFJWUnd die Hilfsfunktion ist ja wiederverwendbar, wenn man möchte. Übrigens ist das Format hier jetzt eine CSV, das reicht für Excel, XLS würde ich nicht nutzen, wenn es irgendwie vermeidbar ist.
-
...
-
Mir brauchst du das nicht sagen, wenn man das ein- und ausgeben in eine Funktion kapselt, kann man das mit einer Zeilenänderung wunderbar auf alle beliebigen Streams anwenden.
CSV würde ich auch eher vorschlagen, aber das hat der Autor nicht geschrieben. Was auch davon zeugt, dass er sich nicht viele Gedanken gemacht hat.
-
Danke für die hilfreichen Antworten.
Swordfish & Decimad hat dabei den für mich verständlichsten Code und wie ich es mir gedacht habe. Ich versuche mich trotzdem weiterhin dran ( C&P
).
Die andere Lösung muss ich mir aber nochmal genauer angucken (von Eisflamme).
Werde hier meine Lösung, wenn ich fertig bin, auch mal reinstellen und mal gucken, wobei ihr mir noch Tipps geben könnt.
Skym0sh0 schrieb:
CSV würde ich auch eher vorschlagen, aber das hat der Autor nicht geschrieben. Was auch davon zeugt, dass er sich nicht viele Gedanken gemacht hat.
Aufgabenstellung:
Skym0sh0 schrieb:
[...] sondern das Ganze auch wieder als Excel-File (.xls) Paketweise ausgeben.
Mit freundlichen Grüßen
Stryke
-
Wie gesagt: Wenn du deine Zeilen als .xls Datei exportieren willst, dann viel Spass.
Ich hab mal gehört irgendwo, dass die XLSSpezifikation erstens Mircosoft proprietär ist und zweitens auch 800 Seiten lang.
CSV ist da etwas angenehmer. Den Wert eifnach reinschreiben in Anführungsstrichen und zwischen 2 Werte ein Komma, am Ende der Zeile eine neue Zeilen halt gut ist.
Und Excel als auch OpenOffice können es genausogut öffnen.
-
...
-
Ich find ja werte ohne Anführungsszeichen und Tabs als Trenner besser. Zumindest Excel kommt damit auch klar.
-
Eigentlich kommt Excel mit allem klar, oder? Aber Anführungsstriche klingen für mich sehr nach Strings, wird das dann überhaupt korrekt als Zahl erkannt?
-
Ich gehe davon aus, dass die da irgendein Experten-System drüberlaufen lassen, um das Zeugs sinnvoll zu klassifizieren...
-
Also heir bei meinem Office (LibreOffice Calc) fragt er am Anfang, wodurch die Werte separiert werden (Tab, Komma, Space, Semikolon oder anderes) und auch nach einem Text-Delimiter ist gefragt.
-
...