Archiv verlassen und diese Seite im Standarddesign anzeigen : [C++] Ans Ende einer Zeile einer Textdatei schreiben
El Tocho
22.08.2014, 16:57
Hey :),
stehe gerade vor folgendem Problem: Ich habe ein C++ Programm, welches einige Werte jeweils ans Ende einer ganze bestimmten Zeile einer Textdatei schreiben muss.
Hierbei sollte natürlich der Rest der Zeile unverändert bleiben.
Beispiel:
Folgendes sei meine Textdatei
Hier steht etwas Text in der ersten Zeile.
Hier steht noch mehr Text. [Hier möchte ich etwas einfügen lassen]
TextTextTextText.
Und so weiter.
Wie muss mein Quellcode aussehen, damit er exakt bei der rot markierten Stelle, also in Zeile 2 in diesem Falle, eine Eingabe macht?
mfg
El
Multithread
22.08.2014, 17:31
wie wärs mit ner For schleife über jede zeile und eine bedngung darin das etwas mit der Zeile gemacht wird?
Code wirst du hier nicht einfach so bekommen. Programmieren ist selber überlegen WIE etwas geht.
Daepilin
22.08.2014, 17:55
vor allem weiß man zuviel nicht.
Du musst die zeile halt eindeutig identifizieren (z.B. die wievielte es ist, welche zeichenkombination drinn vorkommt usw) und dann das was du willst anhängen. Dabei bedenken, dass der zeilenumbruch am ende der zeile afair mit eingelesen wird, den müsstest du also abschneiden bevor du deinen neuen text anhängst und dann selbst wieder ans ende packen.
Zum einlesen der datei: z.B: http://www.willemer.de/informatik/cpp/fileop.htm
ich würde da getLine nutzen (die c++ version) um die datei zeilenweise einzulesen.
Letztendlich wird alles eine Frage der Strategie zum Zwischenspeichern sein, da man nicht einfach an ein Zeilenende schreiben kann, weil innerhalb einer Datei ein Zeilenende nur eine aus Zeichen bestehende Markierung ist, wonach unmittelbar der Rest folgt, was man dann als die folgende Zeile ansehen kann. Also muss der Rest nach hinten geschoben werden. Währenddessen ist der Zustand der Datei inkonsistent. Wenn es auf die Integrität der Daten ankommt, empfiehlt es sich deshalb, eine neue Datei anzulegen und die alte nach Erfolg zu löschen. Auch die temporäre Benennung der Dateien bedarf einer geeigneten Strategie. Die Problemstellung muss also zuerst unabhängig von einer Programmiersprache verstanden werden.
Lookbehind
22.08.2014, 20:38
Letztendlich wird alles eine Frage der Strategie zum Zwischenspeichern sein, da man nicht einfach an ein Zeilenende schreiben kann, weil innerhalb einer Datei ein Zeilenende nur eine aus Zeichen bestehende Markierung ist, wonach unmittelbar der Rest folgt, was man dann als die folgende Zeile ansehen kann. Also muss der Rest nach hinten geschoben werden.
...
Wobei man durch geschicktes verwenden von File-Pointern den Puffer auf die Größe des ein zu fügenden Textes reduzieren kann.
Aber alles in allem gehört dieses Thema doch eher nach nebenan ins Programmier-Forum http://upload.worldofplayers.de/files5/PraetoSchiebEnd.gif
Wobei man durch geschicktes verwenden von File-Pointern den Puffer auf die Größe des ein zu fügenden Textes reduzieren kann.
...
Was normalerweise dazu führt, dass man die Verwaltung der Schreib-Caches dem Zusammenspiel aus dem Zielsystem und der dortigen Sprachimplementierung überlässt, was den Vorteil hat, dass man sich keine unnötigen Portabilitäts- oder Skalierungsprobleme einhandelt. Optimierungen bedürfen jedoch mindestens eingehender Kenntnisse von Aufgabenstellung und Zielsystem. :D
El Tocho
25.08.2014, 13:50
Tut mir leid, dass ich einige Tage nichts von mir habe höhren lassen^^
Habe mittlerweile - nicht zuletzt wegen eurer Hilfe hier - eine Lösung gefunden.
Danke :)
mfg
El
Powered by vBulletin® Version 4.2.2 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.