Srodne teme
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Redimenzioniranje VarArray-y

[es] :: Pascal / Delphi / Kylix :: Redimenzioniranje VarArray-y

[ Pregleda: 1281 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 298
*.adsl.net.t-com.hr.



+4 Profil

icon Redimenzioniranje VarArray-y25.08.2016. u 15:03 - pre 92 meseci
Koristim VarArray za upis/čitanje u excel (brže od pojedinačnog). Naišao sam na problem, a na netu nisam našao objašnjenje, osim da se ne može što mi ne djeluje realno.
Dakle:
Kreiram array (ne znam u naprijed max. dimenziju:
Code:
 
   adn := VarArrayCreate([1,1,1,10], varVariant);
   adn[1,1] := 'nešto';
   ...


Sad bi trebalo rediomenzionirati array u: adn[1,2,1,10] da bi se upisali:
Code:

   adn[2,1] := 'nešto';


Tu nastaje problem. Kako redimenzionirati array? Koliko sam vidio po netu-ne može, što mi ne izgleda vjerojatno.

Mogu to zaobiči, ali uz dodatni kod: TList koji pamti array[1..10], pa kad je gotovo, znam dimenzije i kreiram vararray pa prepišem podatke. Malo mi je nezgrapno.

Možda postoji jednostavniji način ili drugi način za čitanje/pisanje po excel file-u, a da nije po pojedinačim čelijama jer je puno sporije...
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Redimenzioniranje VarArray-y25.08.2016. u 17:36 - pre 92 meseci
Vidim da postoji _VarArrayRedim, možda se sa njim može nešto izvesti.
Kod kreiranja excel fajla najbrži način koji sam našao (osim pravljenja raw formata) je da se svi podaci (u tab delimited formatu) prebace u clipboard, pejstuju i onda preko TextToColumns se dobiju normalni podaci. Ovim pristupom možeš deset hiljada stavki upisati za sekund.
 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 298
*.adsl.net.t-com.hr.



+4 Profil

icon Re: Redimenzioniranje VarArray-y26.08.2016. u 07:32 - pre 92 meseci
Hvala za savjet, nije mi palo na pamet pastanje. Ima li cipboard ogranićenje u veličini koju može primiti?

VarArrayRedim radi, ali na posljednjoj dimenziji.

Code:

adn := VarArrayCreate([1,1,1,10], varVariant);
VarArrayRedim(adn, 20);


napravit će array: [1,1,1,20]

 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: Redimenzioniranje VarArray-y26.08.2016. u 08:46 - pre 92 meseci
Na ovo sam naletio, moždqa pomogne:

B := VarArrayCreate([0, 4], varVariant); This means B is a one dimensional array with Array bounds 0 to 4.

VarArrayReDim(B,8); means the array becomes B[0,8].

A := VarArrayCreate([0, 3, 0, 1], varVariant); means its a two dimensional array.
The elements are A[0,0],A[0,1],A[1,0],A[1,1],A[3,0],A[3,1]

VarArrayReDim(A,4); means the array becomes A[0,3,0,8].
Jope it is clear now. It always changes the right most bounds only.


I vidim da postoji varArrayHighBound pa prouči malo.
F
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Redimenzioniranje VarArray-y26.08.2016. u 11:38 - pre 92 meseci
> Hvala za savjet, nije mi palo na pamet pastanje. Ima li cipboard ogranićenje u veličini koju može primiti?

Mislim da ne, ili je jako veliko, znam da sam uspesno punio do 65k iz jednog cuga na starijim Excelima, OpenOffice/LibreOffice je ranije imao od 32k.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Redimenzioniranje VarArray-y

[ Pregleda: 1281 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Srodne teme
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.