![]() |
StringReplace automatisch - was geht schnell und einfach?
Hallo,
ich möchte in einer Textdatei eine Reihe von Textteilen ersetzen, z.B.: Zitat:
Danke für Eure Hilfe! Jürgen |
Re: StringReplace automatisch - was geht schnell und einfach
Hallo Jürgen,
Zitat:
Grüße vom marabu |
Re: StringReplace automatisch - was geht schnell und einfach
Die erstere Methode is IMHO zu bevorzugen. RegEx geht zwar auch, is aber dafür, dass du nur feste Strings durch andere feste Strings ersetzen willst, oversized und dadurch langsamer...
mfg Christian |
Re: StringReplace automatisch - was geht schnell und einfach
Schlussbericht
Ich benutze jetzt tatsächlich String.Replace() mit einem Replace-Array wie folgt:
Code:
Text_Gesamt entsteht durch Einlesen von etwa 100 Textdateien. Obwohl NET Strings als feste Größe behandelt und bei StringBuilder.Replace() ständig im Arbeitsspeicher umkopieren muss, dauert dieser Vorgang mit 120x Suchen/Ersetzen in 400 kB weniger als 1 Sekunde - für einen Arbeitsablauf, der noch viele weitere Prüfungen benötigt, ist das zu vernachlässigen.
StringBuilder Text_Gesamt = new StringBuilder(500000);
// die genaue Länge kann durch FileInfo vorher bestimmt werden // Dateien einlesen durch etwas wie Text_Gesamt.AppendText( File.ReadAllText ) string[] arrReplace = new string[] { // Liste übernommen aus: [url]http://de.selfhtml.org/html/referenz/zeichen.htm[/url] // Zeichen für Griechisch, Interpunktion, Technik u.ä. habe ich weggelassen "", " ", """, "\"", "Ç", "Ç", "È", "È", // usw. etwa 120 Paare: zuerst der OldString, dann der NewString // (der nicht nur aus einzelnen Zeichen, sondern auch aus Strings bestehen kann) " ", " " }; // alle Konvertierungen in einem Rutsch: for (int x1 = 0; x1 < arrReplace.Length; x1 += 2 ) Text_Gesamt.Replace(arrReplace[x1], arrReplace[x1+1]); Das zur Kenntnis für andere, die ähnliche Verfahren benötigen. Gruß Jürgen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz