Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Frage zu records??? (https://www.delphipraxis.net/75640-frage-zu-records.html)

lizardking 23. Aug 2006 11:59

Re: Frage zu records???
 
Zitat:

Zitat von mbamler
Delphi-Quellcode:
type
    Daten = Array[1..30] of Record
           datensatz: String;
           saeulennummer: String;
           libelle: String;
           ergebnis: String;
           soll: String;
           ist: String;
           datum: String;
           zeit: String;
    end;

var
  MyDaten : Daten;


for i := 1 to 30 DO MyDaten.Datensatz[i] := '';
funktioniert

Gruß
Matthias

Funktioniert NICHT. Ausserdem steht die Loesung bereits weiter oben...

Gruesse,

LK

Chewie 23. Aug 2006 12:07

Re: Frage zu records???
 
Edit: Bitte ignorieren, hab nicht richtig hingekuckt :oops:

Loehni 23. Aug 2006 12:47

Re: Frage zu records???
 
Hallo, hier ist mein Vorschlag:
Delphi-Quellcode:
type
    Daten = Array[1..30] of Record
           datensatz: String;
           saeulennummer: String;
           libelle: String;
           ergebnis: String;
           soll: String;
           ist: String;
           datum: String;
           zeit: String;
    end;

Var i      : Integer;
    Mydaten : Daten;

{  Alles zurücksetzen }
Fillchar(myDaten,Sizeof(myDaten),0);

{oder nur einzelne Datenelemente }
For i := 1 to 30 Do
  Fillchar(Mydaten[i],Sizeof(Mydaten[i]),0);

{oder felder im Record einzeln ohne With }

For i := 1 to 30 Do
  Begin
  Mydaten[i].datensatz     :='';
  Mydaten[i].saeulennummer :='';
  Mydaten[i].libelle       :='';
  Mydaten[i].ergebnis      :='';
  Mydaten[i].soll          :='';
  Mydaten[i].ist           :='';
  Mydaten[i].datum         :='';
  Mydaten[i].zeit          :='';
  End;

{oder felder im Record einzeln mit With }

For i := 1 to 30 Do With myDaten[i] Do
  Begin
  datensatz     :='';
  saeulennummer :='';
  libelle       :='';
  ergebnis      :='';
  soll          :='';
  ist           :='';
  datum         :='';
  zeit          :='';
  End;

end.
Gruß
Andreas

[edit=SirThornberry]Delphi-Tags gesetzt - Nächstes mal bitte selbst machen. Mfg, SirThornberry[/edit]

mkinzler 23. Aug 2006 12:51

Re: Frage zu records???
 
Wenn du jetzt noch die Delphi-Tag nehmen würdest, wäre es u.U. lesbar.

Amateurprofi 23. Aug 2006 13:16

Re: Frage zu records???
 
Zitat:

Zitat von Khabarakh
Zitat:

Zitat von fwsp
so muss dat.

So ein Quatsch, EDatabaseErrors Deklaration ist genausogut möglich. Lediglich ein kleiner Verschreiber war in seinem Code ;) .
Delphi-Quellcode:
for i := 1 to 30 DO Daten[i].Datensatz := '';

@Khabarakh

EDatabaseError hatte einen Type mit der Bezeichnung Daten definiert
Delphi-Quellcode:
type
   Daten = Array[1..30] of Record
      ...
   end;
und wollte dann etwas in Daten[i] schreiben.

Das funktioniert natürlich nicht, denn in einen Type kann man ja wohl kaum etwas reinschreiben.
Genau das hat fwsp erkannt und einen vernünftigen Vorschlag gemacht.

Was, Khabarakh, ist daran Quatsch ?

Khabarakh 23. Aug 2006 14:02

Re: Frage zu records???
 
Zitat:

Zitat von Loehni
Delphi-Quellcode:
{  Alles zurücksetzen }
Fillchar(myDaten,Sizeof(myDaten),0);

{oder nur einzelne Datenelemente }
For i := 1 to 30 Do
  Fillchar(Mydaten[i],Sizeof(Mydaten[i]),0);

Autsch. Mit primitiven Typen darfst du das gern machen, aber bei LongStrings wird dich die Referenzzählung dafür töten.

Zitat:

Zitat von Amateurprofi
Das funktioniert natürlich nicht, denn in einen Type kann man ja wohl kaum etwas reinschreiben.

Solch einen Fehler hatte ich gar nicht in Erwägung gezogen (ja, ich weiß, die Beitragszahl sagt nichts über den Kenntnis-/Ermüdnisstand aus ;) ), sondern "Daten" eher als Beispielsvariable gesehen. Der Compilerfehler bleibt jedoch mit und ohne Variable der gleiche.

Zitat:

Was, Khabarakh, ist daran Quatsch ?
Das, was ich schrob: die Deklaration. fswp dachte, EDatabaseErrors Daten-Deklaration sei falsch, allerdings sind beide möglich. Und bei beiden bleibt der Fehler bei der Indizierung.

Amateurprofi 23. Aug 2006 14:56

Re: Frage zu records???
 
Zitat:

Das, was ich schrob: die Deklaration. fswp dachte, EDatabaseErrors Daten-Deklaration sei falsch, allerdings sind beide möglich. Und bei beiden bleibt der Fehler bei der Indizierung.
@Khabarakh
Tja, daß fwsp den Fehler mit der Indizierung aus EDatabaseErrors Beitrag übernommen hat, hatte wiederum ich übersehen. Jedoch, wie du schriebst ist das ja "Lediglich ein kleiner Verschreiber". Den Gedankenfehler (keine Variable deklariert) hat er sher gut erkannt...

Khabarakh 23. Aug 2006 15:12

Re: Frage zu records???
 
Zitat:

Zitat von Amateurprofi
Den Gedankenfehler (keine Variable deklariert) hat er sher gut erkannt...

Wenns denn nun ein Fehler war ;) . Das kann uns nur EDatabaseError selbst sagen.

[edit]
Ich habe noch einmal nachgeforscht: wäre Data eine Variable, würde der Fehler
Zitat:

[Fehler] Project2.dpr(16): Record, Objekt oder Klassentyp erforderlich
lauten. Unter der Annahme, dass EDatabaseError die exakte Fehlermeldung gepostet hat, wollte er also wirklich den Typen als Variable missbrauchen :duck: .
[/edit]

fwsp 23. Aug 2006 15:15

Re: Frage zu records???
 
Zitat:

Zitat von EDatabaseError
:drunken: juup danke funktioniert. ich glaube ich sollte für heute schluss machen...

anscheinend hat er seine antwort gefunden.

EDatabaseError 23. Aug 2006 15:29

Re: Frage zu records???
 
:wink: ja habe ich. Ich weiß acuh nicht was hier noch diskutiert wird aber das von fwsp funktioniert...

Mfg


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:41 Uhr.
Seite 2 von 2     12   

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