Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Prism Stringverarbeitung unter .net (https://www.delphipraxis.net/45346-stringverarbeitung-unter-net.html)

Speedmaster 4. Mai 2005 15:06


Stringverarbeitung unter .net
 
Frage:

Welche der vielen Namenspaces in .net stellt Funktionen zur Verarbeitung von Strings zu Verfügung??

Damit meine ich solche dinge wie "copy();" "pos();" oder ähnlichem, ich möchte dabei auf die Borland Libarys verzichten wenn möglich!

mfg

Speedmaster

merlin17 4. Mai 2005 15:09

Re: Stringverarbeitung unter .net
 
Felix,

System.String

Modifikatoren: public sealed ;
btw: die Basisklasse ist System.Object


:-) thomas

Robert_G 4. Mai 2005 15:18

Re: Stringverarbeitung unter .net
 
In .Net musst du zwischen Operationen an normalen und Operationen an internal strings unterscheiden!
Generell ist der Typ String in .Net so krass anders, die Besonderheiten sollte man unbedingt kennen. ;) (zum Bleistift zeigen 2 strings mit gleichem Inhalt immer auf die gleiche Instanz, dadurch wird aus einem lahmarschigen string-Vergleich(non .Net) ein Referenzvergleich (.Net)! :) )

Hier mal ein Replace direkt am String und eins mit einem System.Text.StringBuilder.
Code:
string someSmallString = "Miep".Replace("ie", "öö");
Code:
StringBuilder sb = new StringBuilder(someBigString);
sb.Replace("ie", "öö");

jbg 4. Mai 2005 15:53

Re: Stringverarbeitung unter .net
 
Zitat:

Zitat von Speedmaster
ich möchte dabei auf die Borland Libarys verzichten wenn möglich!

Auf die Borland.Delphi.System unit wirst du wohl nicht verzichten können, denn die ist automatisch immer dabei, wie es die System unit in Delphi Win32 auch der Fall war.

Zitat:

zum Bleistift zeigen 2 strings mit gleichem Inhalt immer auf die gleiche Instanz, dadurch wird aus einem lahmarschigen string-Vergleich(non .Net) ein Referenzvergleich (.Net)!
Aber bis die beiden Strings auf die selbe Instanz verweisen, braucht es dafür einen Hash- und danach ggf. einen String-Vergleich. Bei der einen Operation mehr Geschwindigkeit auf Kosten einer anderen. Welche Variante jetzt die bessere ist hängt vom jeweiligen Programm ab (Vergleiche <==> String-Änderungen)

Jasocul 4. Mai 2005 16:04

Re: Stringverarbeitung unter .net
 
Auf meiner Homepage habe ich Beispiele, wie man das in Win32 macht. In den nächsten zwei Wochen habe ich mir vorgenommen, diese Beispiele für .NET "umzubauen".
Das sieht dann natürlich ganz anders aus. Schau einfach zwischendurch rein.

Robert_G 4. Mai 2005 16:05

Re: Stringverarbeitung unter .net
 
Zitat:

Zitat von jbg
Aber bis die beiden Strings auf die selbe Instanz verweisen, braucht es dafür einen Hash- und danach ggf. einen String-Vergleich. Bei der einen Operation mehr Geschwindigkeit auf Kosten einer anderen. Welche Variante jetzt die bessere ist hängt vom jeweiligen Programm ab (Vergleiche <==> String-Änderungen)

Absolut richtig. Deshalb sollte man strings nicht wie blöd zusammenfriemeln oder sonstwie grundlos ändern.
Wenn man es muss gibt es immer noch den Typen String.Internal bzw den Stringbuilder. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 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