AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Probleme mit Constant Strings

Ein Thema von FediDelPr · begonnen am 29. Jun 2019 · letzter Beitrag vom 3. Jul 2019
Antwort Antwort
FediDelPr

Registriert seit: 16. Feb 2018
112 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

Probleme mit Constant Strings

  Alt 29. Jun 2019, 22:40
Hallo

ich verwende Stringkonstanten in einem Array.

Kann mir jemand auf die Sprünge helfen wie ich
folgende Beispiele modifizieren muss um auf die
Strings zugreifen zu können.

Delphi-Quellcode:
TYPE
  TColDef = RECORD
    col: INTEGER;
    descrEXC: STRING; (* descrEXC in EXCEL *)
    descrDB: STRING;
    activ: BOOLEAN;
    typ: CARDINAL;
  END;

  TRowDef = ARRAY[1..MaxColumns] OF TColDef;

CONST
   KredRowDef: TRowDef =
     ((col: 1; descrEXC: 'ER-Nummer'; descrDB: 'KreditRechnID';
       activ: TRUE; typ: varEmpty),
      (col: 2; descrEXC: 'R-Nummer'; descrDB: 'KreditRechnNr';
       activ: TRUE; typ: varOleStr),
      (col: 3; descrEXC: 'Rechnungsdatum'; descrDB: 'Rechnungsdatum';
   ....


(* FUNKTIONIERT *)
(1) IF titel = KredRowDef[c].descrEXC THEN (titel: STRING)

(2) ShowMessage(titel + ' ' + KredRowDef[c].descrEXC);


(* FUNKTIONIERT NICHT *) 
(1) ShowMessage(KredRowDef[c].descrEXC);

(2) s := KredRowDef[c].descrEXC;
Ich finde die Beschreibung der verschiedenen Stringtypen nicht sehr klar:

z.B. http://docwiki.embarcadero.com/RADSt...-Typen_(Delphi)

Vielen Dank für Tipps
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#2

AW: Probleme mit Constant Strings

  Alt 29. Jun 2019, 22:46
Wenn ich mir showMessage(KredRowDef[1].descrEXC); ausgeben lasse, sehe ich ER-Nummer.
Delphi 10.3.
  Mit Zitat antworten Zitat
FediDelPr

Registriert seit: 16. Feb 2018
112 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

AW: Probleme mit Constant Strings

  Alt 29. Jun 2019, 22:57
Genau das würde ich erwarten.
Bei mir kommt aber nur ein String der Länge 0.
Damit wird auch nix angezeigt.

Ich verwende Delphi 10.1 Berlin.

Geändert von FediDelPr (29. Jun 2019 um 23:00 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Probleme mit Constant Strings

  Alt 30. Jun 2019, 04:27
Hallo,
welchen Wert hat die Variable c?
Heiko
  Mit Zitat antworten Zitat
FediDelPr

Registriert seit: 16. Feb 2018
112 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

AW: Probleme mit Constant Strings

  Alt 3. Jul 2019, 01:22
c beginnt mit 1 und wird hochgezählt bis zur Spalte N.
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Probleme mit Constant Strings

  Alt 3. Jul 2019, 08:59
Schätze, das Interessante ist, wie Du Deine diversen Strings definierst/deklarierst.
Das hier funktioniert einwandfrei:

Delphi-Quellcode:
procedure TfrmTesterMain.Button1Click(Sender: TObject);
const
  MaxColumns = 5;

TYPE
  TColDef = RECORD
    col: INTEGER;
    descrEXC: STRING; (* descrEXC in EXCEL *)
    descrDB: STRING;
    activ: BOOLEAN;
    typ: CARDINAL;
  END;

  TRowDef = ARRAY[1..MaxColumns] OF TColDef;

CONST
   KredRowDef: TRowDef =
     (
         (col: 1; descrEXC: 'ER-Nummer'       ; descrDB: 'KreditRechnID' ; activ: TRUE; typ: varEmpty )
       , (col: 2; descrEXC: 'R-Nummer'        ; descrDB: 'KreditRechnNr' ; activ: TRUE; typ: varOleStr)
       , (col: 3; descrEXC: 'Rechnungsdatum'  ; descrDB: 'Rechnungsdatum'; activ: TRUE; typ: varEmpty )
       , (col: 4; descrEXC: 'NochaNummer'     ; descrDB: 'NoaNr'         ; activ: TRUE; typ: varOleStr)
       , (col: 5; descrEXC: 'SchoWiedaANummer'; descrDB: 'SwaNr'         ; activ: TRUE; typ: varOleStr)
     );
var
  c: Integer;
  titel: string;
  s: string;
begin
  titel := 'R-Nummer';
  for c := 1 to MaxColumns do begin
    if (titel = KredRowDef[c].descrEXC) then begin
      ShowMessage('[1] ' + titel + ' ' + KredRowDef[c].descrDB);
    end; { if ('R-Nummer' = KredRowDef[c].descrEXC) }
    ShowMessage('[2] ' + KredRowDef[c].descrEXC);
    s := KredRowDef[c].descrEXC;
    ShowMessage('[3] ' + s);
  end; { for c := 1 to MaxColumns do }
end;
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz