Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 4 odgovora
  • 1.927 pregleda

Najnovija ↓

Redimenzioniranje VarArray-y 25.08.2016. u 16:03 · pre 123 meseca #1
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...
Re: Redimenzioniranje VarArray-y 25.08.2016. u 18:36 · pre 123 meseca #2
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.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Redimenzioniranje VarArray-y 26.08.2016. u 08:32 · pre 123 meseca #3
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]

Re: Redimenzioniranje VarArray-y 26.08.2016. u 09:46 · pre 123 meseca #4
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.
Potpis
F
Re: Redimenzioniranje VarArray-y 26.08.2016. u 12:38 · pre 123 meseca #5
> 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.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme