AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

array-typ erforderlich

Ein Thema von daNiii · begonnen am 12. Feb 2010 · letzter Beitrag vom 12. Feb 2010
Antwort Antwort
daNiii

Registriert seit: 10. Nov 2008
98 Beiträge
 
Turbo Delphi für Win32
 
#1

array-typ erforderlich

  Alt 12. Feb 2010, 15:34
Obwohl ich ein array benütze kommt an gekenntzeichneter Stelle meines Programmcodes der Fehler: Array-typ erforderlich


Delphi-Quellcode:
var
  Form1: TForm1;
   Position: array [1..5,1..28] of string;


implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
Zeile_eingabe, Spalte_eingabe: integer;
gesucht: string;
begin
Zeile_eingabe:= strtoint(ed_zeile.text);
Spalte_eingabe:= strtoint(ed_spalte.text);
gesucht:= Position[Spalte_eingabe,Zeile_eingabe]; //Fehler

Memo1.lines.clear;
Memo1.lines.add(gesucht);

end;

procedure TForm1.FormShow(Sender: TObject);
var

  Zeile, Spalte, stringlaenge: integer;
  Spalteninhalt, Zelleninhalt: string;
Daten: tstrings;
ZeAnzahl, wo: integer;
begin
Memo1.lines.clear;


Daten := TStringList.Create;
Daten.LoadFromFile(extractfilepath(application.exename) +'daten.txt');
ZeAnzahl:= 0;

for Zeile := 1 to 28 do begin
 ZeAnzahl:= ZeAnzahl +1;
 Spalteninhalt:= Daten.strings[ZeAnzahl];

              for Spalte := 1 to 5 do begin

              Zelleninhalt:= Spalteninhalt;
                 wo:= pos(';', Zelleninhalt);
                 Zelleninhalt:= Copy(Spalteninhalt,1,wo-1);
                 Position[Spalte, Zeile]:= Zelleninhalt;
                 stringlaenge:= Length(Spalteninhalt);
                 Spalteninhalt:= Copy(Spalteninhalt,wo+1,stringlaenge-wo+1);


              end;
    end;

Daten.free;


end;
  Mit Zitat antworten Zitat
s-off

Registriert seit: 20. Jan 2010
89 Beiträge
 
Delphi 2010 Professional
 
#2

Re: array-typ erforderlich

  Alt 12. Feb 2010, 15:38
'Position' ist eine Property von TForm...

Edit: um so etwas zu vermeiden, solltest Du Präfixe verwenden.
Gruß
s-off
  Mit Zitat antworten Zitat
daNiii

Registriert seit: 10. Nov 2008
98 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: array-typ erforderlich

  Alt 12. Feb 2010, 15:43
Ja, aber dass kann doch nicht der Fehler sein, wenn Button1 auch in TForm1 liegt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#4

Re: array-typ erforderlich

  Alt 12. Feb 2010, 15:50
Sowas kommt von den bösen globalen Variablen und davon, das TCustomForm ein Property Namens "Position" besitzt.

OK, erstmal ist es blöd, wenn es zwei "Werte" mit dem selben Namen gibt,
aber hätte man dieses "Position" als private Variable der Form deklariert, dann würde sie noch vor dem "Position" der Form stehen und es wäre dieses Problem nicht aufgetreten.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

Re: array-typ erforderlich

  Alt 12. Feb 2010, 15:55
Was hier als "Position" bezeichnet wird ist doch wohl eine "Positionssammlung" oder "Positionsarray" oder "aPositionen" oder was auch immer!

Man kann es nicht oft genug sagen, Leute nehmt vernünftige, sprechende Variablennamen.

Gruß
K-H
Zitat von himitsu:
Sowas kommt von den bösen globalen Variablen und davon, das TCustomForm ein Property Namens "Position" besitzt.

OK, erstmal ist es blöd, wenn es zwei "Werte" mit dem selben Namen gibt,
aber hätte man dieses "Position" als private Variable der Form deklariert, dann würde sie noch vor dem "Position" der Form stehen und es wäre dieses Problem nicht aufgetreten.
und wie kommt man dann an die Form.Position?
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: array-typ erforderlich

  Alt 12. Feb 2010, 15:57
Zitat von himitsu:
aber hätte man dieses "Position" als private Variable der Form deklariert, dann würde sie noch vor dem "Position" der Form stehen und es wäre dieses Problem nicht aufgetreten.
Und dann wäre sogar ein Hinweis erschienen.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#7

Re: array-typ erforderlich

  Alt 12. Feb 2010, 16:34
Zitat von p80286:
und wie kommt man dann an die Form.Position?
Wenn der Compiler dieses überschreiben läßt, dann
x := inherited Position; und nochmal alles in Kurz:
- "ordentliche" Namen verwenden
- so nach wie möglich an der Ebene deklarieren, wo es gebraucht wird
(global ist am Weitesten weg)

gloable Variablen liegen sozusagen in der aller untersten Deklarations-Ebene


PS: TDE zeigt sogar an wo und wie das "Position" deklariert wurde.
Dort hätte man mal zuerst nachsehen sollen, als dieses Problem auftrat.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#8

Re: array-typ erforderlich

  Alt 12. Feb 2010, 17:01
Hallo,
Zitat von sirius:
Und dann wäre sogar ein Hinweis erschienen.
Es gibt keine Warnung, die neue Variable überdeckt einfach die vorhandene Eigenschaft.

Da es sich um ein String-Array handelt, enthält es vermutlich keine Positionen. Ein sprechender Name würde hier tatsächlich sehr zum Verständnis beitragen, weil der Dateiname ("daten.txt") leider auch keinen Aufschluss über den Inhalt gibt. Wir wissen nur, dass die Datei mindestens 29 Zeilen enthalten sollte, sonst kommt es in der FOR-Schleife zu einer Index-Überschreitung. Die erste Zeile der Datei wird offenbar nicht gebraucht.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Antwort Antwort


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 15:35 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