AGB  ·  Datenschutz  ·  Impressum  







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

frage zu dynamischen arrays

Ein Thema von Mart · begonnen am 14. Jun 2004 · letzter Beitrag vom 14. Jun 2004
Antwort Antwort
Mart

Registriert seit: 22. Mai 2004
Ort: Lehrte
3 Beiträge
 
Delphi 7 Enterprise
 
#1

frage zu dynamischen arrays

  Alt 14. Jun 2004, 13:40
Code:
type
  arraytype=array of Integer;

var
  variable1:arraytype;
  variable2:arraytype;
ok wie ich die länge für variable1 und variable2 festlege weiss ich, geht mit setlength(variable,länge), allerdings möchte ich dass alle variablen mit dem typ arraytype auch in proceduren und funktionen die gleiche länge haben, ich möchte nicht bei jeder variable setlength machen müssen, deswegen meine frage geht es irgendwie dass ich die länge von arraytype festlege??
setlength(arraytype,länge) funktioniert nicht, da sagt mir delphi dass ( erwartet wurde aber , gefunden wurde nach arraytype.

die arrays werden von proceduren aus dll an hauptprogramm und im hauptprogramm selber auch übergeben, deswegen musste ich das mit arraytype (ursprünglich arraytype = array [1..25] of Integer, möchte jetzt aber dynamische arrays nutzen weil die länge der arrays mit aus der dll uebergeben werden soll. also gibt es etwas so wie setlength auch für arraytype???
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#2

Re: frage zu dynamischen arrays

  Alt 14. Jun 2004, 13:55
Willkommen hier

Ums kurz zu machen: NEIN geht nicht ...macht auch keinen sinn, da man ja dyn. array hat um alle längen anders zu setzen! und ausserdem bräuchte der typ dann ja eine datenbank mit allen array referenzen, um diese dann auf die gewünschte länge zu bringen.

Wenn du so viele arrays hast, dann mach doch array of array und setz alle mit setLength(arr,arrCount,100); auf hundert
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
Mart

Registriert seit: 22. Mai 2004
Ort: Lehrte
3 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: frage zu dynamischen arrays

  Alt 14. Jun 2004, 13:58
naja bei meinem prog würde es schon sinn machen da ich die länge aller arrays ändern will jenachdem was in der dll angegeben ist.
schade dass es net geht, muss ich wohl alles einzelnt machen oder diese option rauslassen
  Mit Zitat antworten Zitat
Mart

Registriert seit: 22. Mai 2004
Ort: Lehrte
3 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: frage zu dynamischen arrays

  Alt 14. Jun 2004, 14:39
ich denke es wird ueberhaupt nicht mit dynamischen arrays gehen wenn ich nicht gleich am anfang die größe von dem arraytype festlegen kann, da die übergabe von arrays zwischen dll und programm irgendwie nur funzt wenn in der klammer vonner procedure festgelegt ist wie groß das array ist, ich weiss nicht ob es grundsätzlich so ist oder daran liegt dass die arrays eigentlich aus pointern bestehen...

Code:
type
  StringP=^string;
  arraytype=array of StringP;

procedure beispiel(var variable1:arraytype);
so siehts eigentlich aus... die procedure in der dll kann nur die arrays übergeben wenn ich arraytyp = array [1..25] of StringP;
mache also klar ist wie groß das array ist und es funktioniert auch nur wenn ich das mit arraytype mache, bei
Code:
procedure beispiel(var variable1: array of StringP);
tritt eine Zugriffsverletzung auf bei der Übergabe
und
Code:
procedure beispiel(var variable1:array [1..25] of StringP);
geht nicht weil delphi [1..25] nicht in der klammer haben möchte... muss also wohl festlegen wie groß die arrays sind

vielleicht weiss ja jemand wie ich die arrays dynamisch machen kann sie aber dennoch von der dll ans hauptprogramm übergeben kann...
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#5

Re: frage zu dynamischen arrays

  Alt 14. Jun 2004, 14:51
Moin!

Ich kapier da nix was du uns sagen willst.

Grundlegendes:

1. Ein dynamisches Array ist intern schon ein Array von Zeigern.
2. Du brauchst das Array nicht als Array auf Zeiger auf Strings zu definieren - ist quatsch - siehe 1.
3. Selbst wenn du es so machst, dann musst du auch den Zeiger ordentlich füllen mit Zeiger auf einen String
4. Nein, du kannst bei einer Funktion keine festen Arraygrenzen angeben - aber einen Typ - also gebe doch einfach einen definierten Typ für das dynamische Array an
5. Und du musst bei der Benutzung von Strings (da es AnsiStrings sind) bei der DLL und im Hauptprogramm die ShareMem einbinden, wie es im Kommentar in der DLL steht...

MfG
Muetze1
  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 08:50 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