Entwickler-Ecke

WinForms - Find and Replace


Phelios - Mi 10.12.08 17:51
Titel: Find and Replace
Hi Leuts ...

Nur ganz kurz.

Gibt es in C# 2008 Express keine Vorlage für einen
Find und Replace-Dialog?
Ich dachte immer, der würde zu den Standard-Dialogen
gehören, aber ich finde nix.

Thanks4all

Greeting
( Karl )


jaenicke - Mi 10.12.08 18:13

Es wäre mir neu, wenn es den gibt. Ich habe den als ich ihn brauchte schnell selbst gebastelt.


JüTho - Mi 10.12.08 18:17

Hallo Karl,

nein, das gehört nicht zu den Standards. Es hängt doch sehr von der jeweiligen Anwendung ab, wo und wie gesucht und ggf. ersetzt werden soll: In einer Datenbank-Anwendung ist "Suchen" etwas ganz anderes als in einem Editor; bei Texten mit Formatierung muss anders gesucht werden als ohne; bei Bildern geht es wieder anders (wenn es überhaupt sinnvoll geht).

Also kann es nur Bestandteil der betreffenden Anwendung sein.

Jürgen


Phelios - Do 11.12.08 12:05
Titel: Find and Replace
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Es wäre mir neu, wenn es den gibt. Ich habe den als ich ihn brauchte schnell selbst gebastelt.


Ich hab mir nur gedacht: "Warum soll ich das Rad nochmal erfinden,
wenn es das schon gibt."
Aber es ist sicher kein Thema, das selbst zu coden.
Jetzt weiß ich wenigstens mit Sicherheit, dass es das NICHT gibt.

Danke für die Info

MfG
( Karl )


Phelios - Do 11.12.08 12:13
Titel: Find and Replace
user profile iconJüTho hat folgendes geschrieben Zum zitierten Posting springen:
Hallo Karl,

nein, das gehört nicht zu den Standards. Es hängt doch sehr von der jeweiligen Anwendung ab, wo und wie gesucht und ggf. ersetzt werden soll:

Ich hab mich vielleicht etwas blöd ausgedruckt, und nicht geschrieben,
dass es um eine Textsuche geht.

Zitat:

In einer Datenbank-Anwendung ist "Suchen" etwas ganz anderes als in einem Editor; bei Texten mit Formatierung muss anders gesucht werden als ohne; bei Bildern geht es wieder anders (wenn es überhaupt sinnvoll geht).

Klar, in einer DB würde ich SQL verwenden, und das kann man nicht
mit meiner Sache vergleichen.

Ich hab aber diesen Dialog nur in Programmen gesehn, die Texte
verarbeiten. Also TextEditoren, Word, u.s.w.

Okay, ich weiß jetzt Bescheid.

Danke für die Info.

MfG
( Karl )


Th69 - Do 11.12.08 13:30

Es gibt in der 'comdlg32'-DLL einen Standard Find- bzw. Replace-Dialog, welcher auch von Notepad, Wordpad etc. verwendet wird:
- FindTextA/W (ASCII bzw. WideString)
- ReplaceTextA/W (dito)

Unter http://www.vbaccelerator.com/home/Vb/Code/Libraries/Common_Dialogs/Find_and_Replace/article.asp gibt es eine Anleitung in VB zum Einbinden.

Leider gibt es auf pinvoke.net noch keinen Eintrag hierzu.
Bei Delphi und dem Borland C++ Builder gab es diesen Dialog auch standardmäßig, daher verwundert es mich auch, warum es ihn im .NET-Framework nicht gibt...


jaenicke - Do 11.12.08 13:46

Es handelt sich um eine systemspezifische DLL. Und deine Beispiele zeigen ja schon das Problem. Er wurde eben praktisch nur in kleinen Editoren oder Anfängerbeispielen benutzt, in größeren Programmen ist er unbrauchbar. Und genau deshalb lohnt es nicht ihn als Standarddialog anzubieten. Der Prozentsatz an Programmen, die ihn nutzen (kann) ist einfach verschwindend gering.

Zumal der Dialog unter Win32 auch Fehler hatte... Was mich ohnehin dazu gezwungen hatte ihn nachzuprogrammieren, auch bei nem kleinen Editor.