AGB  ·  Datenschutz  ·  Impressum  







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

Werte an Array übergeben?

Ein Thema von Pseudemys Nelsoni · begonnen am 19. Dez 2004 · letzter Beitrag vom 31. Okt 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

Werte an Array übergeben?

  Alt 19. Dez 2004, 11:35
hi,

wie kann ich sowas wie das hier hinbekommen:

MeinArray := (@Irgendwas^.Item1, @Irgendwas^.Item2, @Irgendwas^.Item3); wie das bei CONST geht weiss ich, ich brauch es aber innerhalb des codes, mein array soll 20 pointer halten, wie mache ich das ohne unentwegt:

MeinArray[0] := @Irgendwas^.Item1
MeinArray[1] := @Irgendwas^.Item1

usw...


schreiben zu müssen?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von GimbaR
GimbaR

Registriert seit: 17. Apr 2004
Ort: Weltmetropole Rostock ;)
134 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Werte an Array übergeben?

  Alt 19. Dez 2004, 11:43
w00t???
najo, ich denk mal du meinst das:
Delphi-Quellcode:
Setlength(meinarray, 3);
meinarray[0]:=1;
meinarray[1]:=2;
meinarray[2]:=3;
wenn es das net ist, sry, abba ich versteh sonst net, was genau du meinst

mfg GimbaR
Jonas
Bei dem Tempo ist es nur noch eine Frage der Zeit bis SSchäuble verlangt allen deutschen Bürgern ein Halsband zur ständigen Überwachung zu verpassen...
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#3

Re: Werte an Array übergeben?

  Alt 19. Dez 2004, 11:48
hi,

das ist genau DAS was ich NICHT möchte .

ich möchte mehrere werte DIREKT an ein array übergeben, in C geht das ganz easy...

sagen wir mal ich möchte 50 werte an mein array übergeben, dann bräuchte ich 50 deiner zeilen....

ich möchte aber sowas wie das haben:

EinArray := ('wert1', 'wert2', 'wert3',...'wert49', 'wert50); ohne:

Delphi-Quellcode:
EinArray[0] := 'wert1';
EinArray[1] := 'wert0'
EinArray[2] := 'wert2'
EinArray[3] := 'wert3'
EinArray[4] := 'wert4'
EinArray[5] := 'wert5'
schreiben zu müssen...

achja...wer jetzt an eine schleife denkt - wird kaum gehen, da ich keine strings verwende sondern pointer auf variablen..
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von GimbaR
GimbaR

Registriert seit: 17. Apr 2004
Ort: Weltmetropole Rostock ;)
134 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Werte an Array übergeben?

  Alt 19. Dez 2004, 11:52
kann man denn nich dein array als Array of Pointer deklarieren?
dann würde dass gehen, oder sehe ich das falsch?

mfg GimbaR
Jonas
Bei dem Tempo ist es nur noch eine Frage der Zeit bis SSchäuble verlangt allen deutschen Bürgern ein Halsband zur ständigen Überwachung zu verpassen...
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#5

Re: Werte an Array übergeben?

  Alt 19. Dez 2004, 11:53
es ist ja ein array of pointer:

PUserArray: array[0..19] of Pointer;
sag mir nurnoch wie ich ihm alle pointer übergebe und nicht alle einzelnd
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von Lukaro
Lukaro

Registriert seit: 24. Mai 2005
Ort: NRW->OWL
16 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Werte an Array übergeben?

  Alt 31. Okt 2005, 09:39
Ich hab das selbe Problem, und es schon mit allen möglichen Schreibweisen probiert, aber nichts gefunden.

Was er/ich meine ist statt:
Delphi-Quellcode:
array[0] := 1;
array[1] := 2;
array[2] := 3;
sowas ähnliches wie das hier zu schreiben:
array := (1,2,3); (Wobei alle Werte des Arrays eingesetzt werden sollen)

Das muss doch möglich sein...
lg, Lukaro
A Programer is just a Tool that converts Coffein into Code.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Werte an Array übergeben?

  Alt 31. Okt 2005, 09:47
ich hatte ein ähnliches Problem was ich jedoch über Schleifen lösen konnte. Um bei dir auszuschließen ob das es mit einer Schleife geht bzw. zu sagen das es doch geht müsste man wissen von welchem Typ "Irgendwas" ist und wie der Typ declariert ist.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#8

Re: Werte an Array übergeben?

  Alt 31. Okt 2005, 09:52
Ich bereite das meist Werte in einem Constanten bereich vor und kopiere später den Bereich.
Delphi-Quellcode:
type
  TIntArray = array [0..5] of Integer;
  
procedure Test;
const
  ciTmp : TIntArray = (1, 2, 3, 4, 5, 6);
var iTmp : TIntArray;
    i : Integer;
begin
  Move(ciTmp, iTmp, SizeOf(TIntArray));
  for i := 0 to 5 do
      Writeln(iTmp[i]);
  readln;
end;
Sieht eve. etwas umständlich aus, ist aber genau das was der C-Compiler auch macht.
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#9

Re: Werte an Array übergeben?

  Alt 31. Okt 2005, 10:04
Es ist auch mit nicht konstanten Werten Möglich, und zwar per Template: http://www.delphipraxis.net/internal...=428049#428049

Delphi-Quellcode:
{$DEFINE FILL_ARRAY_TEMPLATE}
type
  _ARRAY_ITEM_ = string;
{$INCLUDE FillArray_template.pas}
type
  StringArray = _ARRAY_TYPE_;

implementation

{$R *.dfm}

{$INCLUDE FillArray_template.pas}

procedure TForm1.FormCreate(Sender: TObject);
var
  s: StringArray;
  i: Integer;
begin
  s := FillArray(['*blubb*', 'Hello', 'World', '*blubb*']);
  for i := 0 to High(s) do
    ShowMessage(s[i]);
end;
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von Net7
Net7

Registriert seit: 22. Jun 2004
Ort: Lauenburg
161 Beiträge
 
Delphi 7 Professional
 
#10

Re: Werte an Array übergeben?

  Alt 31. Okt 2005, 10:39
Hmm wenn man von vorne her ungefär weiß wie groß, der größte Typ sein wird den man ins array legen will mach ich mir das nicht groß umstandlich.

Nehmen wir mal an dein größter Typ ist 30 kb groß.Ich weiß es ist nicht elegant aber zur übung
reichts.
Übergabe Erfolgt Typenlos, also egal was für Typen du hast.

Wichtig bei Strings diese immer mit blabla:String[größe] begrenzen sonst gibs Datensalat.

ungetestet

Delphi-Quellcode:

const Maxsize = 30720;

type
TADummy= array[0..Maxsize] of Byte;

type TDaten = record
     Size: Longword;
     Daten: TADummy;
     end;

var

Dynarray: array of TDaten;

AnzDatensatz: integer;


// Wenn es einen neuen Pointerinhalt zu verschieben gibt dann diese Proc aufrufen
//
// Beispiel Addpointer(meinpointer^,sizeof(Deintyp);


Procedure AddPointer(var:Pointerinhalt,DatenSize:Longword);
begin

AnzDatensatz := High(Dynarray) + 1; //Wieviele Datensätze sind vorhanden

SetLength(Dynarray,AnzDatensatz + 1); //Erhöhe die Anzahl der Datensetze um eins

AnzDatensatz := High(Dynarray) + 1; //Aktuelle Anzahl der Datensätze


        with Dynarray[AnzDatensatz - 1] do //
    begin
         Size := DatenSize;
         Daten := Pointerinhalt
    end;

end;


//.... der rest bleibt dir überlassen ;)
So kann man elegant seine Dynamischen Array anlegen ohne Schleifen.

Index freigeben nicht vergessen wenn man wieder seine Daten aus Dynarray ließt.

Hoffe konnte bisschen helfen.
Marko
So`ne Atombombe kann einem den ganzen Tag verderben!
Eine eigene DLL in C++ geschrieben wird meist ein Sklave für mein Delphi/Pascal.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:43 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