2017-08-22 5 views
2

Je cherchais le nom d'une table dans tous les fichiers .pas et .dfm de mon projet en utilisant Grep Search. Il pouvait seulement trouver des résultats dans les fichiers .pas, alors que j'étais sûr qu'il y avait au moins un jeu de données qui utilisait cette table. Je cherchai le nom du jeu de données dans le fichier .dfm et voici ce que je trouve:Comment empêcher les fichiers .dfm de casser des valeurs de chaîne à partir du milieu des mots?

object DtsRPCondition: TADODataSet 
    Connection = ConnMain 
    CursorType = ctStatic 
    CommandText = 
     'select FromDay, ToDay, ToTime, Daily, DayOfWeek from Tbl_Reserve' + 
     'ValidDay' 
    ... 

Cela rend inutile de chercher dans les fichiers .dfm, donc j'ai besoin soit une option qui contrôle l'écriture des fichiers .dfm ou une autre recherche outil qui peut gérer cela.

+3

Les DFM enregistrés en tant que texte vont casser des chaînes à des longueurs fixes quel que soit le contenu, rien de ce que vous pouvez faire à ce sujet. Les DFM enregistrés en Binaire ne le font pas. –

+2

Il est peu probable qu'EMBT change la mise en forme des fichiers '.dfm'. Peut-être avez-vous besoin d'écrire du texte, que vous pourriez avoir besoin de chercher, dans du code (dans le fichier '.pas'), de sorte que vous puissiez le formater comme vous le souhaitez. –

+2

Delphi ne fera que casser de telles chaînes en plusieurs lignes qu'il juge trop longues. Une solution de contournement simple consiste à ajouter des sauts de ligne vous-même. Si vous en ajoutez un avant que 'from' grep ne commence à travailler pour vous. – mghie

Répondre

0

Vous pouvez convertir les fichiers DFM en binaire, sans écraser les fichiers texte DFM en utilisant l'utilitaire de conversion fourni avec Delphi:

convert -b -s -ebin *.dfm 

-b = sortie binaire, -ebin signifie bin utilisation (ou tout ce que vous voulez) comme l'extension pour les nouveaux fichiers, et -s signifie recurse sous-répertoires.

Cela créera un fichier "bin" pour eash DFM. Comme indiqué ci-dessus, il n'y aura pas de mot d'emballage dans ceux-ci. Bien qu'ils soient binaires, ils devraient être respectables, et peuvent être utilisés pour identifier les DFM que vous devez regarder.