Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Empfehlung Refactoring - Tool (https://www.delphipraxis.net/154312-empfehlung-refactoring-tool.html)

hanspeter 6. Sep 2010 08:10

Empfehlung Refactoring - Tool
 
Hallo,
ich möchte in einem alten Projekt Komponenten austauschen.
Das Projekt hat teilweise noch Binär - dfm.
Es sollen z.B. alle IB_Edit gegen ein DBEdit oder IB_DataSource gegen DataSource ausgetauscht werden.
Früher habe ich so etwas mit GExpert gemacht. Die älteren Versionen kommen mit Unicode nicht klar und die neue Version zerschießt teilweise den Quelltext.
Da es ein größeres Projekt ist, müssen einige hundert Komponenten ausgetauscht werden.
Hat wer eine Empfehlung für ein Tool was das kann?

Für einen Tip dankbar.

Peter

uligerhardt 6. Sep 2010 09:05

AW: Empfehlung Refactoring - Tool
 
Im bin-Verzeichnis deiner Delphi-Installation liegt ein convert.exe, das aus den binären DFMs Text-DFMs machen kann. Danach kannst du mit Suchen und Ersetzen in einem Texteditor oder einem Grep-Tool arbeiten. Wenn die Properties der auszutauschenden Komponenten kompatibel sind, sollte das problemfrei gehen.

Edit: Zum abschließenden Überprüfen kannst du Andys DFMCheck benutzen.

HTH, Uli.

MaBuSE 6. Sep 2010 10:27

AW: Empfehlung Refactoring - Tool
 
Zitat:

Zitat von uligerhardt (Beitrag 1047733)
Im bin-Verzeichnis deiner Delphi-Installation liegt ein convert.exe, das aus den binären DFMs Text-DFMs machen kann.

:shock: Echt, und ich hab mir das damals selbst geschrieben :stupid:

Habe mal alles außer den "Kern" entfernt. Sollte aber trotzdem noch funktionieren.

Delphi-Quellcode:
program dfm2text;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  Classes;

// Programmcode gekürzt
// ...
var
  InputStream: TMemoryStream;
  OutputStream: TMemoryStream;
  c: Char;

begin
  // Programmcode gekürzt
  // ...
  InputStream := TMemoryStream.Create;
  OutputStream := TMemoryStream.Create;
  try
    InputStream.LoadFromFile(ParamStr(1));

    InputStream.Position := 0;
    InputStream.Read(c,1);
    if c <> #255 then Halt(5); // PrintError(5); // 'InputFile not binary Format'

    InputStream.Position := 0;
    try
      ObjectResourceToText(InputStream, OutputStream); // <- Das ist die Funktion, die das DFM Format umwandelt. Gibts schon seit Delphi 1 ;-)
    except
      Halt(6); // PrintError(6); // 'convert Error'
    end;

    OutputStream.Position := 0;
    try
      OutputStream.SaveToFile(ParamStr(2));
    except
      Halt(7); // PrintError(7); // 'problem saving OutputFile'
    end;
  finally
    InputStream.Free;
    OutputStream.Free;
  end;

  WriteLn('OK: '+ParamStr(1)+' -> '+ParamStr(2));
end.
In dieses Programm kannst Du natürlich auch Deine Suchen/Ersetzen Funktion mit einbauen. ;-)

Ich hoffe das hilft Dir

uligerhardt 6. Sep 2010 10:49

AW: Empfehlung Refactoring - Tool
 
Zitat:

Zitat von MaBuSE (Beitrag 1047753)
Zitat:

Zitat von uligerhardt (Beitrag 1047733)
Im bin-Verzeichnis deiner Delphi-Installation liegt ein convert.exe, das aus den binären DFMs Text-DFMs machen kann.

:shock: Echt, und ich hab mir das damals selbst geschrieben :stupid:

Na, da weiß man dann auch, was man hat. :mrgreen:


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