Results 1 to 8 of 8

Thread: Array variabele

  1. #1

    Array variabele

    Hallo , ik heb een vraagje over array variabele.
    Ik moet uit meerdere arrays lezen en dit in dezelfde procedure doen.
    Ik probeer het volgende :
    Delphi Code:
    1. var
    2.    koloma: array[1..40] of int64;   { het zijn erg grote getallen }
    3.    nummer: int64;
    4.    teller: integer;
    5.    naamarray: string;
    6. procedure
    7.    koloma[5]:=  12345678901234567890;  {als voorbeeld}
    8.    naamarray:= 'koloma';                        {als voorbeeld}
    9.    teller:= 5;                                        {als voorbeeld}
    10.    nummer:= (naamarray[teller]);  // ------ Dit werkt alleen niet.

    Kan iemand mij uitleggen wat er verkeerd is en hoe ik dit op kan lossen.
    Ik heb alles al klaar om de arrays te vullen , dus ik wil met arrays blijven werken.
    Bij voorbaat dank.
    Groetjes
    Damion
    Last edited by GolezTrol; 29-Apr-18 at 19:18.

  2. #2
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    9,731
    Hallo,

    Wel de eerste fout is dat er alleen "procedure" staat, en geen complete procedure declaratie.

    Verder is "werkt" niet een beetje vaag. De compiler geeft normaal een preciezere foutmelding. Deze aub ook reproduceren bij vragen.

    Wat tips:

    De () haakjes in de nummer:= regel zijn een tikje vreemd. () is echt puur de wiskundig.
    Naamarray is een string, en dus ongeveer een array of char. naamarray[teller] geeft dus een char terug, geen int64.

  3. #3
    Hallo Marcov,
    Bedankt voor uw reactie.
    Sorry voor het niet duidelijk zijn ,

    Delphi Code:
    1. var
    2.     koloma: array[1..40] of int64;
    3.     nummer: int64;
    4.     teller: integer;
    5.     naamarray: string;
    6. procedure TForm.zomaariets.
    7.    koloma[5]:= 12345678901234567890;
    8.    naamarray:= 'koloma';                                  
    9.    teller:= 5; {als voorbeeld}
    10.    nummer:= koloma[teller];                     { dit werkt }
    11.    nummer:= naamarray[teller];                { als ik koloma in string naamarray stop  ( naamarray:='koloma';) werkt dit niet , }
    12.                                                          { mijn vraag is mag je een array niet op deze manier aanspreken }

    [dcc32 Error] Unit1.pas(35): E2010 Incompatible types: 'Int64' and 'Char'
    [dcc32 Fatal Error] Project1.dpr(5): F2063 Could not compile used unit 'Unit1.pas'
    Last edited by GolezTrol; 29-Apr-18 at 19:18.

  4. #4
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    9,731
    Dat is inderdaad het probleem dat ik bedoelde met

    Naamarray is een string, en dus ongeveer een array of char. naamarray[teller] geeft dus een char terug, geen int64.
    Oftewel het type van nummer matched niet met naamarray[teller] , dus krijg je een foutmelding bij de assignment

  5. #5
    Code:
    naamarray: string;
    Code:
    naamarray:= 'koloma';
    Dus wordt naamarray[5] 'm' - het 5e karakter.
    Zorg dat naamarray in de declaratie van hetzelfde type is als koloma en zorg dat de array's naar hetzelfde stukje geheugen wijzen.
    (Is dat niet met assign? Zoek dat even op in de Help)

  6. #6
    Bedankt voor jullie reacties,
    Ga het uitproberen.
    Groetjes
    Damion

  7. #7
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,308
    nummer:= naamarray[teller];
    dit zijn PHP perikelen en kan niet niet in delphi.
    de reden: een (array)variabele moet worden gedeclareerd met de juiste naam om tijdens de runtime de pointer te vinden van die array. Door een variabele te gebruiken als naam is er geen verwijzing naar de array zelf.
    Delphi is great. Lazarus is more powerfull

  8. #8
    Vond het al raar dat het niet ging , nu is het duidelijk.
    Ga het op een andere manier doen.
    Bedankt voor uw informatie John .
    Groetjes,
    Damion

Thread Information

Users Browsing this Thread

There are currently 2 users browsing this thread. (0 members and 2 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •