Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Quelltext aus dfm-Datei in pas-Datei (https://www.delphipraxis.net/151781-quelltext-aus-dfm-datei-pas-datei.html)

FriendOfDelphi 1. Jun 2010 14:09


Quelltext aus dfm-Datei in pas-Datei
 
Hallo Allerseits,

weiß jemand wie der folgende Quelltext aus einer dfm-Datei umgeschrieben werden muss, um ihn direkt in eine pas-Datei einzubauen:

DbfFields.Strings = (
'test1, N, 6, 0'
'test2, N, 6, 0'
'test3, N, 6, 0'
'test4, C, 20, 0'
'test5, F, 18, 8')

himitsu 1. Jun 2010 14:16

Re: Quelltext aus dfm-Datei in pas-Datei
 
Delphi-Quellcode:
DbfFields.Strings.Clear;
DbfFields.Strings.Add('test1, N, 6, 0');
DbfFields.Strings.Add('test2, N, 6, 0');
DbfFields.Strings.Add('test3, N, 6, 0');
DbfFields.Strings.Add('test4, C, 20, 0');
DbfFields.Strings.Add('test5, F, 18, 8');
oder
Delphi-Quellcode:
DbfFields.Strings.Text := 'test1, N, 6, 0'#10
  + 'test2, N, 6, 0'#10'test3, N, 6, 0'#10
  + 'test4, C, 20, 0'#10'test5, F, 18, 8';
oder
(nja, wie kann man denn noch alles eine StringList befüllen? )

mkinzler 1. Jun 2010 14:17

Re: Quelltext aus dfm-Datei in pas-Datei
 
Ich würde es eher mit DelimitedText machen

DeddyH 1. Jun 2010 14:18

Re: Quelltext aus dfm-Datei in pas-Datei
 
Statt #10 würde ich eher sLineBreak verwenden.

himitsu 1. Jun 2010 14:26

Re: Quelltext aus dfm-Datei in pas-Datei
 
Zitat:

Zitat von DeddyH
Statt #10 würde ich eher sLineBreak verwenden.

ich bin Faul und der TextParser versteht Beides. :stupid:

@DelimitedText: praktisch das Selbe, nur eben mit anderem "Delimiter".

mkinzler 1. Jun 2010 14:29

Re: Quelltext aus dfm-Datei in pas-Datei
 
Zitat:

ich bin Faul und der TextParser versteht Beides. Stupid
Das muss aber nicht so bleiben :zwinker:

FriendOfDelphi 1. Jun 2010 14:35

Re: Quelltext aus dfm-Datei in pas-Datei
 
Zitat:

Zitat von himitsu
Delphi-Quellcode:
DbfFields.Strings.Clear;
DbfFields.Strings.Add('test1, N, 6, 0');
DbfFields.Strings.Add('test2, N, 6, 0');
DbfFields.Strings.Add('test3, N, 6, 0');
DbfFields.Strings.Add('test4, C, 20, 0');
DbfFields.Strings.Add('test5, F, 18, 8');
oder
Delphi-Quellcode:
DbfFields.Strings.Text := 'test1, N, 6, 0'#10
  + 'test2, N, 6, 0'#10'test3, N, 6, 0'#10
  + 'test4, C, 20, 0'#10'test5, F, 18, 8';
oder
(nja, wie kann man denn noch alles eine StringList befüllen? )

Habe auch schon einiges versucht. Aber der Vorschlag funktioniert leider auch nicht. ".Text" kennt das Objekt nicht.
Der Compiler meldet "[Fehler]Datei.pas(88): '[' erwartet, aber '.' gefunden."

himitsu 1. Jun 2010 14:36

Re: Quelltext aus dfm-Datei in pas-Datei
 
Nicht?

Der entsprechende "Parser" hat sich mindestens seit Delphi 7 nicht mehr geändert (nur seit D2009 ist noch 'ne Umcodierung vorgeschaltet).
Und dieser Parser kommt mit Windows #13#10, Unix/Linux #10 und Mac #13 zurecht ... also wieso sollte man daran was ändern wollen, vorallem wo es doch jetzt mit Delphi langsam auf CrossPlatform zu geht. :stupid:

mkinzler 1. Jun 2010 14:36

Re: Quelltext aus dfm-Datei in pas-Datei
 
Welchen Typ hat den die Variable?

FriendOfDelphi 1. Jun 2010 14:42

Re: Quelltext aus dfm-Datei in pas-Datei
 
Zitat:

Zitat von mkinzler
Welchen Typ hat den die Variable?

Delphi-Quellcode:
property Strings : [Index: Integer]: String

mkinzler 1. Jun 2010 14:48

Re: Quelltext aus dfm-Datei in pas-Datei
 
Du darfst hier natürlich nicht über die Property, sondern den (privaten) Typ gehen, den die Property bestückt. Es scheint sich ja um einen Standardtyp zu handeln:

Delphi-Quellcode:
slTmp: TStrings;
..
  slTmp := TStringList.Create;
  slTmp.Delimiter := '|';
  slTmp.DeimitedText := 'test1, N, 6, 0|test2, N, 6, 0|test3, N, 6, 0|test4, C, 20, 0|test5, F, 18, 8';
  DbfFields.Strings.Assign( slTmp);

FriendOfDelphi 1. Jun 2010 15:13

Re: Quelltext aus dfm-Datei in pas-Datei
 
Zitat:

Zitat von mkinzler
Du darfst hier natürlich nicht über die Property, sondern den (privaten) Typ gehen, den die Property bestückt. Es scheint sich ja um einen Standardtyp zu handeln:

Delphi-Quellcode:
slTmp: TStrings;
..
  slTmp := TStringList.Create;
  slTmp.Delimiter := '|';
  slTmp.DeimitedText := 'test1, N, 6, 0|test2, N, 6, 0|test3, N, 6, 0|test4, C, 20, 0|test5, F, 18, 8';
  DbfFields.Strings.Assign( slTmp);

Gibt es eine solche vereinfachte Stringzuweisung auch in Delphi 5?
Oder muss ich das einzeln, bzw. mit einer Schleife machen?
Delphi-Quellcode:
slTmp.Strings[i]:='test1, N, 6, 0';
{usw.}

himitsu 1. Jun 2010 15:16

Re: Quelltext aus dfm-Datei in pas-Datei
 
OK, welchen Datentyp hat DbfFields?

Wenn TStrings, TStringList oder Dergleichenm dann aus meinen oberen Codes überall das "Strings." weglassen.

Zitat:

Zitat von FriendOfDelphi
Gibt es eine solche vereinfachte Stringzuweisung auch in Delphi 5?

Hmmm, mußt'e einfach mal ausprobieren.

PS: Für sowas ist es gut, wenn du in deinem DP-Profil die Delphi-Version angibst, damit man sich darauf einstellen kann.

FriendOfDelphi 2. Jun 2010 09:38

Re: Quelltext aus dfm-Datei in pas-Datei
 
Zitat:

Zitat von mkinzler
Du darfst hier natürlich nicht über die Property, sondern den (privaten) Typ gehen, den die Property bestückt. Es scheint sich ja um einen Standardtyp zu handeln:

Delphi-Quellcode:
slTmp: TStrings;
..
  slTmp := TStringList.Create;
  slTmp.Delimiter := '|';
  slTmp.DeimitedText := 'test1, N, 6, 0|test2, N, 6, 0|test3, N, 6, 0|test4, C, 20, 0|test5, F, 18, 8';
  DbfFields.Strings.Assign( slTmp);

Delphi-Quellcode:
DbfFields.Strings.Assign( slTmp);
Auch ein Assign ist mit Delphi 5, bzw. der Komponente Topaz nicht möglich.
Funktioniert so leider nicht.


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