Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Texte in Quellcode einfügen (https://www.delphipraxis.net/170527-texte-quellcode-einfuegen.html)

franktron 21. Sep 2012 10:33

Texte in Quellcode einfügen
 
Kennt einer von euch eine Möglichkeit Textdateien in den Quellcode einzufügen und zwar so.

z.b.
Delphi-Quellcode:
StringList.Add('Zeile1');
StringList.Add('Zeile2');
StringList.Add('Zeile3');
.....

QuickAndDirty 21. Sep 2012 10:35

AW: Texte in Quellcode einfügen
 
Man kann sie z.b. als Resource in die Exe eincompilieren und über HInstance und Resourcenname darauf zugreifen.

p80286 21. Sep 2012 10:48

AW: Texte in Quellcode einfügen
 
Eine andere Möglichkeit wäre:
Delphi-Quellcode:
const
  text1='erste Zeile';
  text2='zweite zeile';
  text3='unbekannter Fehler';

  tea=array [0..2] of string[10]=('0123456789','noch mehr ');
Ist es das was Du wolltest?

Gruß
K-H

Bummi 21. Sep 2012 11:02

AW: Texte in Quellcode einfügen
 
wir bevorzugen ebenfalls die Resourcen

Anhand eines Beispiels

Delphi-Quellcode:
{$R 'MySQLS.res' 'resources\MySQLS.rc'}



function LoadSqlResource(resourceName: string): string;
var
  rs: TResourceStream;
  sl, sl2 : TStringList;
  s : string;
begin
  rs := nil;
  sl := nil;
  sl2 := nil;

  try
    sl := TStringList.Create;
    sl2 := TStringList.Create;
    rs := TResourceStream.Create(hinstance, resourceName, RT_RCDATA);

    rs.Position := 0;
    sl.LoadFromStream(rs);

    for s in sl do
    begin
      if not StartsText('--', s) then
        sl2.Add(s);
    end;
  finally
    if Assigned(sl) then sl.Free;
    if Assigned(rs) then rs.Free;
  end;

  Result := sl2.Text;
  if Assigned(sl2) then sl2.Free;
end;

im Unterordern resources eine Datei MySQLS.rc mit Inhalt
Code:
ModuleCodes_Selectieren        RCDATA "SelModuleCodes.sql"
OffenePosten_Belege_Selectieren RCDATA "SelOffenePostenBelege.sql"
OffenePosten_Kunden_Selectieren RCDATA "SelOffenePostenKunden.sql"
Kundeninfo_Selectieren         RCDATA "SelKundeninfo.sql"
Rechnungen_Selectieren         RCDATA "SelRechnungen.sql"
Kreditor_Selectieren           RCDATA "SelKreditor.sql"
, sowie die aufgeführten Dateien aus obiger Datei

Uwe Raabe 21. Sep 2012 11:06

AW: Texte in Quellcode einfügen
 
Zitat:

Zitat von franktron (Beitrag 1183833)
Kennt einer von euch eine Möglichkeit Textdateien in den Quellcode einzufügen und zwar so.

z.b.
Delphi-Quellcode:
StringList.Add('Zeile1');
StringList.Add('Zeile2');
StringList.Add('Zeile3');
.....

Der ModelMaker Code Explorer hat dazu einen multi line surround wizard, mit dem man das ganz hervorragend lösen kann.

franktron 21. Sep 2012 11:30

AW: Texte in Quellcode einfügen
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1183850)
Zitat:

Zitat von franktron (Beitrag 1183833)
Kennt einer von euch eine Möglichkeit Textdateien in den Quellcode einzufügen und zwar so.

z.b.
Delphi-Quellcode:
StringList.Add('Zeile1');
StringList.Add('Zeile2');
StringList.Add('Zeile3');
.....

Der ModelMaker Code Explorer hat dazu einen multi line surround wizard, mit dem man das ganz hervorragend lösen kann.

Und wo finde ich das. Ich habe BDS XE2 Pro

himitsu 21. Sep 2012 11:37

AW: Texte in Quellcode einfügen
 
Oder pack den Text in eine TEXT-Resource ... dort kannst du das ohne Probleme direkt reinkopieren, oder es über eine .txt-Datei dort einbinden.

Es kommt drauf an wie groß deine Datei ist, aber direkt im Quellcode bekommst du eventuell Probleme ... zuviele lokale Konstanten
(da wird sich mit Sicherheit was über die Forensuche zu finden lassen)

franktron 21. Sep 2012 11:53

AW: Texte in Quellcode einfügen
 
Das mit den Res ist mir schon bekannt aber ich will wirklich Textzeilen die den Quelltext einbauen, die Zeile sind nicht so gross und der Umgang mit den Res würde wesentlich mehr Code produzieren.

Ausserdme hat man das öfftermal schnell einen Text kopieren und dann einfügen, und dann jedesmal immer wieder z.b. Stringlist.add('text') zu machen nervt einfach.

p80286 21. Sep 2012 12:13

AW: Texte in Quellcode einfügen
 
Dann nimm den Text als const auf:
Delphi-Quellcode:
const
  mytext='ModuleCodes_Selectieren       RCDATA "SelModuleCodes.sql" '+
         'OffenePosten_Belege_Selectieren RCDATA "SelOffenePostenBelege.sql"'+
         'OffenePosten_Kunden_Selectieren RCDATA "SelOffenePostenKunden.sql"'+
         'Kundeninfo_Selectieren        RCDATA "SelKundeninfo.sql"'+
         'Rechnungen_Selectieren        RCDATA "SelRechnungen.sql"'+
         'Kreditor_Selectieren          RCDATA "SelKreditor.sql"';
oder
Delphi-Quellcode:
const
  CRLF=$0D0A
  mytext='ModuleCodes_Selectieren       RCDATA "SelModuleCodes.sql" '+CRLF+
         'OffenePosten_Belege_Selectieren RCDATA "SelOffenePostenBelege.sql"'+CRLF+
         'OffenePosten_Kunden_Selectieren RCDATA "SelOffenePostenKunden.sql"'+CRLF+
         'Kundeninfo_Selectieren        RCDATA "SelKundeninfo.sql"'+CRLF+
         'Rechnungen_Selectieren        RCDATA "SelRechnungen.sql"'+CRLF+
         'Kreditor_Selectieren          RCDATA "SelKreditor.sql"';
Gruß
K-H

uligerhardt 21. Sep 2012 12:40

AW: Texte in Quellcode einfügen
 
Zitat:

Zitat von p80286 (Beitrag 1183869)
Delphi-Quellcode:
const
  CRLF=$0D0A

Delphi-Quellcode:
System.sLineBreak
:mrgreen:

p80286 21. Sep 2012 13:26

AW: Texte in Quellcode einfügen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Oh, vertan, es muß
Delphi-Quellcode:
CRLF=#$0D0A
heißen.
was das sLineBreak angeht, schön das es das als Konstante gibt, nur Delphi weiß es immer noch nicht
oder falsch gesucht??

Gruß
K-H

uligerhardt 21. Sep 2012 14:40

AW: Texte in Quellcode einfügen
 
Zitat:

Zitat von p80286 (Beitrag 1183878)
was das sLineBreak angeht, schön das es das als Konstante gibt, nur Delphi weiß es immer noch nicht
oder falsch gesucht??

In der Delphi-Hilfe oder auf den Emba-Seiten hab ich's auch nicht gefunden. :?

p80286 21. Sep 2012 14:58

AW: Texte in Quellcode einfügen
 
Man muß nur lang genug suchen:
Delphi-Quellcode:
const
   sLineBreak = {$IFDEF LINUX} AnsiChar(#10) {$ENDIF}
      {$IFDEF MSWINDOWS} AnsiString(#13#10) {$ENDIF}
      {$IFDEF MACOS} AnsiChar(#10) {$ENDIF};
aus der SYSTEM.PAS von XE, bis 2006 gab es sLineBreak noch nicht.
(die Indys kanntes es wohl schon früher...)

Gruß
K-H

himitsu 21. Sep 2012 16:04

AW: Texte in Quellcode einfügen
 
Zitat:

Zitat von p80286 (Beitrag 1183878)
Oh, vertan, es muß
Delphi-Quellcode:
CRLF=#$0D0A
heißen.

Immernoch nicht ganz richtig.
Delphi-Quellcode:
CRLF=#$0D#$0A
oder
Delphi-Quellcode:
CRLF=#13#10

Das sind ja zwei Chars mit $0D und $0A, bzw. $000D und $000A bei Unicode und nicht ein Unicode-Char mir $0D0A. :zwinker:

p80286 21. Sep 2012 16:29

AW: Texte in Quellcode einfügen
 
:oops::oops:
Zuviel Kalk im Hirn

Pardon
K-H

Neumann 22. Sep 2012 11:43

AW: Texte in Quellcode einfügen
 
Man kann das auch ganz "billig" haben, ohne Resourcen usw. Einfach eine Memo-Komponente auf eine Form, den Lines-Editor aufrufen und den Text hereinkopieren. Memo auf invisible und fertig. Analog geht das mit Script-Komponenten wie z.B. TIBCScript von Devart, die man dann auch noch Ausführen kann um z.B. Stored Procedures in der Datenbank zu ändern oder zu erstellen.

himitsu 22. Sep 2012 16:56

AW: Texte in Quellcode einfügen
 
Das stimmt nicht so ganz. :tongue:

DFM werden auch als Resourcen in die EXE eingebunden und insgesammt werden dadurch sogar mehr Resourcen verwendet.
- die DFM-Resource ist natürlich größer, als die reine TEXT-Resource
- mehr Systemresourcen werden benötigt, da diese Form dann auch noch geladen/erstellt werden muß. (seit D2009 sind dann über 2 Mal soviel RAM zusätzlich belegt)
- und ein bissl zusätzliche Rechenzeit und usw.


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