AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls C# StringReplace automatisch - was geht schnell und einfach?
Thema durchsuchen
Ansicht
Themen-Optionen

StringReplace automatisch - was geht schnell und einfach?

Ein Thema von Jürgen Thomas · begonnen am 8. Sep 2006 · letzter Beitrag vom 7. Okt 2006
Antwort Antwort
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#1

Re: StringReplace automatisch - was geht schnell und einfach

  Alt 7. Okt 2006, 11:25
Schlussbericht

Ich benutze jetzt tatsächlich String.Replace() mit einem Replace-Array wie folgt:
Code:
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]);
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.

Das zur Kenntnis für andere, die ähnliche Verfahren benötigen. Gruß Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:02 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