![]() |
Lesbare Pascal-Bezeichner generieren
Hallo miteinander!
Ich möchte aus beliebigem, vom Benutzer eingebenen Text Pascal-Bezeichner machen (also nur mit den Zeichen _, A-Z, a-z, 0-9). Dabei soll der Text möglichst lesbar bleiben, also bei einem deutschen System z.B. aus ä ae, aus Ä Ae und aus ß ss machen, und nur "exotische" Zeichen durch _ ersetzen. Gibt's da was? Dürfte ja bei Russisch oder Griechisch schwierig werden. |
AW: Lesbare Pascal-Bezeichner generieren
Liste der Anhänge anzeigen (Anzahl: 1)
Schon mal russischen Quelltext gelesen? :stupid: Einzig die Kommentare werden in der entsprechenden Sprache verfasst sein. Daher würde ich mal sowas komplett außen vor lassen. Ansonsten lass halt einfach ein Search-And-Replace drüber laufen. Wichtig dabei ist aber unbedingt die Reihenfolge.
Für Ersetzungen nutze ich die Unit im Anhang. |
AW: Lesbare Pascal-Bezeichner generieren
Zitat:
Delphi-Quellcode:
benennen.
'UserDefindeControl_' + MakeIdentifier(EingabeDesBenutzers)
Zitat:
Delphi-Quellcode:
usw. ist mir natürlich als erstes eingefallen. Aber für potentiell alle Sprachen? Da wäre ich lange am recherchieren und programmieren. Drum hoffe ich auf was vom Betriebssystem.
StringReplace('ä', 'ae')
|
AW: Lesbare Pascal-Bezeichner generieren
Nur äöü Ersetzen bring auch nicht viel, da es ja noch mehr Zeichen gibt.
In SysUtils gibt es ein IsValidIdent, welches auch von Delphi nutzt, um die Gültigkeit von Bezeichnern zu prüfen. Weobei seit Delphi 2009 die Regeln erweitert wurden. > es sind nun alle "Buchstaben" und Zahlen erlaubt und der "_", > also auch äüöß, sowie russische, chinesische und sonstwelche Schriftzeichen. Das erste Zeichen muß ein Achriftzeichen oder "_" sein und danach können auch noch Zahlen vorkommen. |
AW: Lesbare Pascal-Bezeichner generieren
Alternativ könntest Du (sofern Du eigene Komponenten nutzt) Deinen Komponenten eine neue Eigenschaft "RealName: String" zuweisen und dort beliebige Texte speichern. Dann bist Du nicht an die VCL-Namenskonventionen gebunden - müsstest allerdings die zu nutzenden Komponenten anders suchen.
Oder es könnte auch hilfreich sein, die "Bezeichnungen" und Komponenten in einer StringList zu speichern. Dann kommst Du an diese jederzeit über Values und Objects heran (bis zum Programmende). Einen Komponentennamen zuzuweisen ist ja nicht zwingend notwendig. |
AW: Lesbare Pascal-Bezeichner generieren
Ich würde auch nicht das Name-Property verwenden. Das klingt für mich danach als ob jemand später mit FindComponent arbeiten will obwohl es unnötig ist (da man ja weiß welche Komponenten man manuell angelegt hat). Und sobald man die erzeugten Klassen eine einer Liste speichert sollte es eigentlich kein Problem sein in der Liste nicht nur die Komponenten selbst abzulegen sondern auch Zusatzinformationen wie einen Namen.
|
AW: Lesbare Pascal-Bezeichner generieren
Kann man eigentlich das Refactoring automatisieren (Script)?
|
AW: Lesbare Pascal-Bezeichner generieren
Danke allen für eure Kommentare! Das Problem hat sich mittlerweile erledigt, weil ich eine andere Quelle für die Namen gefunden habe. Und ich wollte die Namen nicht groß im Quellcode benutzen. Ich habe es nur zu schätzen gelernt, beim Debuggen den Namen einer Komponente in der Watchlist zu sehen. Deshalb kriegt bei mir jede Komponente einen selbigen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:22 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