2011-01-04 15 views
1

mit Einfügen von Lets sagen, dass ich mit den folgenden Dateneine Zeichenfolge an einer bestimmten Zeile in Textdatei Ziel c

Benutzername

Benutzer-ID

Einzelheiten

eine Textdatei

Angenommen, ich möchte eine neue Zeile "User screen name" zwischen "User ID" und "Details" einfügen. Wie soll ich das machen? Ist es möglich, eine Zeichenfolge in eine bestimmte Zeile einzufügen? da diese eine variable String-Länge für verschiedene Benutzer haben, denke ich, es ist nicht möglich, seekToFileOffset zu verwenden und die Datei zu aktualisieren. bitte hilf mir.

Dank

Antwort

5

Der einzige Weg, dies zu tun ist, um die Datei in dem Speicher zu lesen, die interne Darstellung der Daten zu ändern, und schreiben Sie es wieder heraus.

Es gibt einige Variationen dieses Prozesses, aber kurz gesagt; Dateien sind nicht wie echte Papier- und Tintendokumente: Sie können keine Inhalte in die Mitte einer Datei einfügen, sondern nur ersetzen, was bereits vorhanden ist.

Bearbeiten: Um zu verdeutlichen, können Sie nur eine Datei am Ende wachsen; nicht in der Mitte.

+0

So Dateien sind wie echtes Papier und Tinte. – flopr

+0

@flopr Wer wusste, oder? In Wahrheit ist die Wahrheit nicht so einfach, und wenn Sie mit dem Dateisystem, den spärlichen Dateien und der präzisen Blockausrichtung hacken, könnten Sie wahrscheinlich Daten in die Mitte von Dateien einfügen, aber ich würde es ehrlich gesagt nicht empfehlen. –

+1

@flopr Oh, hah, ich habe es falsch gelesen. Wie sie sich in diesem Fall von Papier und Tinte unterscheiden, ist, dass Sie, wenn Sie ein mehrbuchstabiges Dokument mit einer Beschreibung haben, ein Blatt in die Mitte einfügen oder eines entfernen können, wodurch der Stapel kürzer oder größer wird; was Sie nicht (Sternchen) mit einer Computerdatei machen können (auf den meisten Dateisystemen unter vernünftigen Bedingungen). –

Verwandte Themen