![]() |
Suche mittels Grep in DFM-Dateien ergibt mitunter "false negative"
Vor dem Löschen von potentiell unbenutzten Datenbankobjekten schaue ich mittels GExperts Grep zuerst nach, ob dieses Objekt tatsächlich an keiner Stelle im Anwendungscode oder Tests mehr verwendet wird.
Leider ist (zumindest in Delphi 2009 noch) die Textform der DFMs nicht immer "grep-bar", weil lange Textzeilen mitten im Bezeichner umbrochen werden. Beispiel:
Delphi-Quellcode:
Eine grep-Suche nach Datenbankobjekt 'view_name' liefert daher keinen Treffer. Das ist aus Sicht von grep auch völlig korrekt so ;)
object qryBeispielDataSet: TSimpleDataSet
... DataSet.CommandText = 'select tabellen_id, feldname1, feldname2'#13#10'from view_na' + 'me'#13#10'where bedingung' ... end Wird in neueren Delphi Versionen auch noch so in Text-DFMs umbrochen? |
AW: Suche mittels Grep in DFM-Dateien ergibt mitunter "false negative"
Schreib Dir doch ein eigenes DFM-GREP, oder konvertiere die DFM vor dem Greppen.
|
AW: Suche mittels Grep in DFM-Dateien ergibt mitunter "false negative"
Oder du lässt deine DFMs binär speichern .... da wird nichts umgebrochen. :stupid:
|
AW: Suche mittels Grep in DFM-Dateien ergibt mitunter "false negative"
Du könntest auch versuchen reguläre Ausdrücke bei der Suche zu verwenden. Genau für solche Fälle sind sie ja da.
Sherlock |
AW: Suche mittels Grep in DFM-Dateien ergibt mitunter "false negative"
Zitat:
|
AW: Suche mittels Grep in DFM-Dateien ergibt mitunter "false negative"
Wohl wahr :D
Ich bin nur froh, daß nicht nach einem Beispiel für so einen Audruck gefragt wurde. Ich würde einfach zwei bis dreimal leicht variiert suchen, und dann davon ausgehen, daß es schon schief gehen wird. Um ganz sicher zu gehen, würde ich die DB auch einfach so lassen wie sie ist. ;) Sherlock |
AW: Suche mittels Grep in DFM-Dateien ergibt mitunter "false negative"
Mist, dachte schon, man könne die Zeilenlänge irgendwo ändern, aber das ist hart einprogrammiert.
Du hättest das dann ja nur eine andere Maximallänge (möglichst groß) für ObjectResourceToText definieren brauchen und schon gäbe es zukünftig keine Zeilenumbrüche mehr.
Delphi-Quellcode:
procedure ObjectBinaryToText(Input, Output: TStream);
procedure ConvertValue; const LineLength = 64; |
AW: Suche mittels Grep in DFM-Dateien ergibt mitunter "false negative"
Was hält dich eigentlich davon ab, ein \'+\r\n\s*\' per RegEx einfach zu eliminieren?
|
AW: Suche mittels Grep in DFM-Dateien ergibt mitunter "false negative"
Zitat:
Als Erweiterung für GExperts oder cnPack wäre das ganz nett. (Update: einen Feature-Vorschlag bei GEXpert.org habe ich eingereicht). |
AW: Suche mittels Grep in DFM-Dateien ergibt mitunter "false negative"
|
AW: Suche mittels Grep in DFM-Dateien ergibt mitunter "false negative"
AFAIK arbeitet sed nur zeilenweise. Außerdem sind wir doch hier in einem Delphi-Forum ;).
MfG Dalai |
AW: Suche mittels Grep in DFM-Dateien ergibt mitunter "false negative"
Zitat:
![]() |
AW: Suche mittels Grep in DFM-Dateien ergibt mitunter "false negative"
Zitat:
Ich merke es zur Zeit wieder deutlich, wie mächtig die Unix-Philosophie ist, wenn man sich ein bisschen mit den Tools beschäftigt (man-Pages + Google). grep, awk, xargs, wc ... wer einmal davon gekostet hat, will nie mehr zurück. |
AW: Suche mittels Grep in DFM-Dateien ergibt mitunter "false negative"
Zitat:
Zitat:
|
AW: Suche mittels Grep in DFM-Dateien ergibt mitunter "false negative"
Erik Berry, einer der GExpert Entwickler, hat mir vor ein paar Tagen geantwortet: den Vorschlag, bei der Grep Suche den störenden Zeilenumbruch mitten im Stringkonstanten (und daher evtl. auch mitten in Bezeichnern von DB-Objekten) zu entfernen, wurde in der Vergangenheit bereits erwogen.
Leider gibt es aktuell für die GExpert Entwicklung keine Resourcen - so dass man sich vorerst mit anderen Werkzeugen behelfen muß. p.s. Wie sieht es mit cnWizards aus, ist dort eine Grep Suche inklusive DFM enthalten? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:47 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