ich habe eine .txt Datei die ich in meinem Programm auslese. An bestimmten Stellen wiederholt sich der Inhalt, es gibt sozusagen eine Überschrift, Inhalt, Ende… usw! Überschrift und Ende sind überall gleich.
Nun mein Problem:
Ich habe den kompletten Dateiinhalt in eine Liste geschrieben, nur fällt mir nicht ein, wie ich die Liste in mehrere Strings bekomme.
Das Ziel des ganzen:
Aus einer großen .txt Datei viele kleine machen, die alle aus 1x Überschrift, Inhalt, Ende bestehen.
Hat jemand eine Idee? Mit Regex geht es wohl, nur habe ich es nicht geschafft.
bin mir zwar nicht sicher, ob ich Deine Frage richtig vestanden habe, aber Du könntest Deinen Textinhalt doch einfach splitten (beispielsweise über die ‘gleichen’ Textinhalte) !
Wie würde das aussehen? Soll ich die Datei erst gar nicht einer Liste hinzufügen?
In sContent liegt der komplette Inhalt der Textdatei. Es wiederholen sich immer Überschrift und Ende, nur ich bekomme es nicht hin, mit diesen Informationen einzelne strings zu erzeugen.
[CSharp]
if (File.Exists(fullPathDesktop))
{
StreamReader reader = new StreamReader(fullPathDesktop, System.Text.Encoding.Default);
sContent = reader.ReadToEnd();
reader.Close();
}
List<string> sentences = new List<string>();
sentences.Add(sContent);
Directory.CreateDirectory(newPathDesktop + "VCARDS");
es ist mir noch nicht so ganz klar, wie die Textdatei organisiert ist. Stehen Überschrift, Inhalt und Ende jeweils in einer eigenen Zeile oder steht alles fortlaufend im Text? Woher weisst du, was Überschrift, Inhalt oder Text ist?
wenn Du in “sContent” den kompletten Text hast, kannst Du ihn doch nach Deinen Bedürfnissen teilen …
[QUOTE=albatros]Hallo iTz,
es ist mir noch nicht so ganz klar, wie die Textdatei organisiert ist. Stehen Überschrift, Inhalt und Ende jeweils in einer eigenen Zeile oder steht alles fortlaufend im Text? Woher weisst du, was Überschrift, Inhalt oder Text ist?
[/QUOTE]
genau, ohne die Struktur kann man nichts weiter sagen !
stehen die einzelenen Einträge direkt untereinander ?
Dann würde ich zwischen jeden „END:VCARD“ und BEGIN:VCARD" irgendwelche Trennzeichen einfügen (ich nutze bspw. gerne sowas wie „##@@##“, über die dann gesplittet werden kann!
Da alles so schön zeilenweise aufgelistet ist: Einfach die Datei mit File.ReadAllLines() komplett einlesen. Damit bekommst du ein String-Array mit den Zeilen, über das du nur eine Schleife laufen lässt. Bei BEGIN:VCARD dann jeweils eine neue Textdatei erstellen und alle Zeilen bis END:VCARD dort reinschreiben.
[QUOTE=albatros]Da alles so schön zeilenweise aufgelistet ist: Einfach die Datei mit File.ReadAllLines() komplett einlesen. Damit bekommst du ein String-Array mit den Zeilen, über das du nur eine Schleife laufen lässt. Bei BEGIN:VCARD dann jeweils eine neue Textdatei erstellen und alle Zeilen bis END:VCARD dort reinschreiben.
[/QUOTE]
oder so
Das hat dann aber bei etwa 10.000 Einträgen den Nnachteil, dass man dabei auch 10.000 Textdateien erstellen würde … will man das wirklich ??