AGB  ·  Datenschutz  ·  Impressum  







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

Array länge verändern

Ein Thema von Murcielago82 · begonnen am 26. Jun 2006 · letzter Beitrag vom 26. Jun 2006
Antwort Antwort
Murcielago82

Registriert seit: 7. Apr 2006
30 Beiträge
 
#1

Array länge verändern

  Alt 26. Jun 2006, 14:15
Hallo, ich will die länge eines arrays erst in einer Procedure setzen.


Delphi-Quellcode:
procedure zahlsetzen_generieren(i,j : integer;StringGrid1:TStringGrid);

VAR zeiger,k,zahl,wo:integer;
möglichkeit : array [0..zeiger] of integer; //Zeiger soll erst in der procedur gesetzt werden???
geprüft: boolean;

procedure prüfen();
  begin
  geprüft:= false;
  geprüft:= check_zeile(i,zahl);
  if geprüft = false then
      begin
        geprüft:=check_spalte(j,zahl);
        if geprüft = false then
          begin
            geprüft:=check_3x3(zahl,i,j);
            if geprüft = false then
            begin
              exit;
            end;
          end;
        end;
  end;

begin
  zeiger:=0;
  for k:=0 to 9 do
    begin
    prüfen();
    if geprüft = false then
      begin
      möglichkeit[zeiger]:= k;
      inc(zeiger); //Hier sollte Zeiger immer erhöht werden wenn zulässig
      end;
    end;
end;
Leider bekomme ich immer ine Fehlermeldung wenn ich oben das array erstelle. Ist sowas überhaupt möglich was ich vorhabe?
Gruss
  Mit Zitat antworten Zitat
pacman1986

Registriert seit: 11. Feb 2005
Ort: Kirchhain
498 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Array länge verändern

  Alt 26. Jun 2006, 14:20
seh dich nach dynamischen arrays um die werden dann so deklariert

möglichkeiten : array of integer; und wenn du die größe setzt:

setlength(moeglichkeiten,2); das array begin bei 0 also -> 0,1 sind die array elemete bei diesem beispiel
Christian N.
Designed to make a difference

najjaronline.de
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Array länge verändern

  Alt 26. Jun 2006, 14:22
Delphi-Quellcode:
procedure zahlsetzen_generieren(i,j : integer;StringGrid1:TStringGrid);

VAR zeiger,k,zahl,wo:integer;
möglichkeit : array of integer; //Zeiger soll erst in der procedur gesetzt werden???
geprüft: boolean;

procedure prüfen();
  begin
  geprüft:= false;
  geprüft:= check_zeile(i,zahl);
  if geprüft = false then
      begin
        geprüft:=check_spalte(j,zahl);
        if geprüft = false then
          begin
            geprüft:=check_3x3(zahl,i,j);
            if geprüft = false then
            begin
              exit;
            end;
          end;
        end;
  end;

begin
  zeiger:=0;
  for k:=0 to 9 do
    begin
    prüfen();
    if geprüft = false then
      begin
      SetLength(möglichkeit,Succ(zeiger));
      möglichkeit[zeiger]:= k;
      inc(zeiger); //Hier sollte Zeiger immer erhöht werden wenn zulässig
      end;
    end;
end;
So sollte es gehn, aber ob die variabl "Möglichkeit" zulässig ist denk ich nicht
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
pacman1986

Registriert seit: 11. Feb 2005
Ort: Kirchhain
498 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Array länge verändern

  Alt 26. Jun 2006, 14:22
ups natürlich oe net ö
Christian N.
Designed to make a difference

najjaronline.de
  Mit Zitat antworten Zitat
Avatar

Registriert seit: 11. Mai 2006
5 Beiträge
 
#5

Re: Array länge verändern

  Alt 26. Jun 2006, 14:23
Hi Murcielago82.

Dafür musst Du eine dynamische Array-Variabl definieren und dann die Länge zuweisen. Das sieht dann so aus:

Delphi-Quellcode:
var
  xMoeglichkeit: Array of Integer;

begin
  SetLength(xMoeglichkeit, iAnzahl);
  ...
PS: Zeiger würd ich nie eine Variable nennen, es sei denn, es ist wirklich ein Pointer

PPS: och nö. das geht viel zu schnell hier ...
  Mit Zitat antworten Zitat
Murcielago82

Registriert seit: 7. Apr 2006
30 Beiträge
 
#6

Re: Array länge verändern

  Alt 26. Jun 2006, 14:28
Klasse vielen Dank!!!
Zitat:
SetLength(möglichkeit,Succ(zeiger));
Was bedeuted Succ ??
  Mit Zitat antworten Zitat
Avatar

Registriert seit: 11. Mai 2006
5 Beiträge
 
#7

Re: Array länge verändern

  Alt 26. Jun 2006, 14:31
Da zitiere ich doch mal aus der allesumfassenden Hilfe die man gut über F1 erreichen kann:

Zitat:
Die Funktion gibt den Nachfolger eines Arguments zurück.
  Mit Zitat antworten Zitat
Murcielago82

Registriert seit: 7. Apr 2006
30 Beiträge
 
#8

Re: Array länge verändern

  Alt 26. Jun 2006, 14:35
und das bedeuted? In Der Hilfe steht n+1 also wäre es hier zeiger +1?
  Mit Zitat antworten Zitat
Avatar

Registriert seit: 11. Mai 2006
5 Beiträge
 
#9

Re: Array länge verändern

  Alt 26. Jun 2006, 14:50
Richtig, das heißt "einen mehr als". pred(x) steht übrigens für "einen weniger als X". Beides kann auch zusammen mit high(X) und low(X) für Enum-Typen (Aufzählungstypen) verwendet werden. Ganz praktisch, um den Überblick zu behalten und nicht lange 2+i-(i+1)+(i*i-1)+6... Würmer zu bekommen.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Array länge verändern

  Alt 26. Jun 2006, 17:00
Moin Martin,

Zitat von Angel4585:
So sollte es gehn, aber ob die variabl "Möglichkeit" zulässig ist denk ich nicht
in D2006 kannst Du Umlaute, oder Accents, oder ß... in Bezeichnernamen verwenden (in D2005 weiss ich es nicht)
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  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:47 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