AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Delphifunktion um die Länge eines Array in einem "Array of Variant" zu bestimmen?
Thema durchsuchen
Ansicht
Themen-Optionen

Delphifunktion um die Länge eines Array in einem "Array of Variant" zu bestimmen?

Offene Frage von "BadenPower"
Ein Thema von BadenPower · begonnen am 21. Jan 2015 · letzter Beitrag vom 23. Jan 2015
Antwort Antwort
Seite 1 von 3  1 23      
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#1

Delphifunktion um die Länge eines Array in einem "Array of Variant" zu bestimmen?

  Alt 21. Jan 2015, 21:03
Delphi-Version: 2007
Hallo zusammen,

ich habe jetzt stundenlang gesucht, aber bin nicht fündig geworden.

Gibt es in Delphi keine Funktion, um die Länge eines Array in einem "Array of Variant" zu bestimmen?

Also so etwas wie:

Länge := Length(VarArray[0]);
Dies funktioniert natürlich nicht.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.

Geändert von BadenPower (21. Jan 2015 um 21:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Delphifunktion um die Länge eines Array in einem "Array of Variant" zu bestimmen?

  Alt 21. Jan 2015, 21:18
Länge := Length(VarArray[0]);
Kleine Veränderung:
Laenge := Length(VarArray); // Ohne [0]
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#3

AW: Delphifunktion um die Länge eines Array in einem "Array of Variant" zu bestimmen?

  Alt 21. Jan 2015, 21:24
Kleine Veränderung:
Laenge := Length(VarArray); // Ohne [0]
Das ergibt die Länge des Arrays und nicht die Länge des Arrays, welches im Array unter dem ArrayIndex 0 liegt.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Delphifunktion um die Länge eines Array in einem "Array of Variant" zu bestimmen?

  Alt 21. Jan 2015, 21:26
http://www.delphipraxis.net/808-vari...verstehen.html
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#5

AW: Delphifunktion um die Länge eines Array in einem "Array of Variant" zu bestimmen?

  Alt 21. Jan 2015, 21:29
Schöner Link. Zeigt aber keine Funktion mit welcher man die Länge auslesen kann.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Delphifunktion um die Länge eines Array in einem "Array of Variant" zu bestimmen?

  Alt 21. Jan 2015, 21:34
Schöner Link. Zeigt aber keine Funktion mit welcher man die Länge auslesen kann.
Immer hübsch de Äuglein uffmache
Nach kurzen Stöbern in der OnlineHilfe:
VarArrayDimCount, VarArrayHighBound, VarArrayLowBound
http://docwiki.embarcadero.com/Libra...rArrayDimCount
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#7

AW: Delphifunktion um die Länge eines Array in einem "Array of Variant" zu bestimmen?

  Alt 21. Jan 2015, 21:52
Immer hübsch de Äuglein uffmache
Nach kurzen Stöbern in der OnlineHilfe:
VarArrayDimCount, VarArrayHighBound, VarArrayLowBound
http://docwiki.embarcadero.com/Libra...rArrayDimCount
Diese Funktionen kenne ich zur Genüge.

VarArrayDimCount:
Gibt die Anzahl der Dimensionen zurück, aber nicht die Arraylänge.
Löst beim Aufruf von Array[0] eine Exception wenn das Array die Länge 0 hat.

VarArrayLowBound:
Gibt nur den niederen Indexwert aus.

VarArrayHightBound:
Gibt nur den höchsten Indexwert aus, oder auch nicht, wenn das Array die Länge 0 hat.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.

Geändert von BadenPower (21. Jan 2015 um 22:37 Uhr) Grund: Nachträge
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Delphifunktion um die Länge eines Array in einem "Array of Variant" zu bestimmen?

  Alt 21. Jan 2015, 22:02
Tja, da wirst du wohl mal folgendes machen müssen:

Poste den Code der das Problem zeigt
Teile uns die Exception mit (CopyPaste der Meldung)

Dann schauen wir weiter
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#9

AW: Delphifunktion um die Länge eines Array in einem "Array of Variant" zu bestimmen?

  Alt 21. Jan 2015, 22:29
hier einmal ein wenig Testcode:

benötigt
1x Form
1x Button
4x Label

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;


type
  TMyVarArray = Array of Variant;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;


var
  Form1: TForm1;

implementation

{$R *.dfm}



function LocalNewArray(): TMyVarArray;
begin
  //Result := VarArrayCreate([-3,-2],varVariant);
  //Result := VarArrayCreate([0,5],varVariant);
  SetLength(Result,0);


end;

procedure TForm1.Button1Click(Sender: TObject);
var
  lArray1: Array of Variant;
  lArray2: Array of Variant;
begin

  lArray1 := VarArrayCreate([0,5],varVariant);
  //SetLength(lArray1[0],0);
  lArray1[0] := VarArrayCreate([-3,-2],varVariant);
  lArray1[0][-2] := 'Test';

  lArray2 := VarArrayCreate([0,10],varVariant);
  lArray2[0] := VarArrayCreate([0,10],varVariant);
  //lArray2[0] := LocalNewArray();
  //SetLength(lArray2[0],0);

  try
    Label1.Caption := lArray1[0][-2];
    //Label1.Caption := IntToStr(Length(lArray1));
  except
    Label1.Caption := 'Fehler';
  end;

  try
    Label2.Caption := IntToStr(Length(lArray2));
  except
    Label2.Caption := 'Fehler';
  end;

  try
    //Label3.Caption := IntToStr(VarArrayHighBound(lArray1[0],1));
    Label3.Caption := IntToStr(VarArrayDimCount(lArray1[0]));
    //Label3.Caption := IntToStr(Length(lArray1[0]));
    //Label3.Caption := IntToStr(High(lArray1[0]));
  except
    Label3.Caption := 'Fehler';
  end;

  try
    //Label4.Caption := IntToStr(VarArrayLowBound(lArray2,2));
    //Label4.Caption := IntToStr(VarArrayHighBound(lArray2,2));
    //Label4.Caption := IntToStr(VarArrayLowBound(lArray2[0],1));
    //Label4.Caption := IntToStr(VarArrayHighBound(lArray2[0],1));
    //Label4.Caption := IntToStr(VarArrayDimCount(lArray2[0]));
    Label4.Caption := IntToStr(Length(lArray2[0]));
    //Label4.Caption := IntToStr(High(lArray2[0]));
  except
    Label4.Caption := 'Fehler';
  end;



end;

end.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Delphifunktion um die Länge eines Array in einem "Array of Variant" zu bestimmen?

  Alt 21. Jan 2015, 22:33
Man könnte den Testcode ja mal so ergänzen, dass er auch die tatsächliche Fehlermeldung ausgibt
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 12:37 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