Newsgroup: it.comp.lang.delphi
Titolo: aiuto per un record!!!!!

Salve ragazzi,
sono un novellino sia di questo NG che di Pascal.
sino ad ora ho sviluppato piccoli prg con VB 6, però
ora vorrei passare al Pascal (Delphi) avendone constatato
sia la velocità che la facilità d'uso, anche se per un Basico:-)
è un pò difficile:-(
Veniamo al punto, ho un archivio, fatto con VB6 con  7221 record,
così formato:
Type RecordPasta
giorno as Integer : mese as Integer : anno as Integer
spaghetti as Integer : maccheroni as Integer
......
End Type
Public Pasta as RecordPasta
per leggere nell'archivio, il totale dei record e l'n record, ho scritto:
Open "pasta.dat" For Random As #1, Len=Len(Pasta)
ultimo = LOF(1) / Len(Pasta)   //mi ritorna il totale dei record
Get #1, ultimo, Pasta   // mi legge l'ultimo record
Close #1
Label1.caption= "Totale record =  "+ str(ultimo)+ "ultima data "+
str(giorno) +str(mese)+str(anno)
Fin qui con il VB, ora ho tradotto in Pascal
Type
   TPasta = packed record
  giorno, mese, anno : Integer;
  spaghetti, maccheroni,........ : Integer;
  end;
Procedure TForm1.lettura;
var
DataFile : file of TPasta ;
Pasta : TPasta;
FGiorno : Integer;
FMese : Integer;
FAnno : Integer;
ultimo : Integer;
begin
AssignFile(DataFile, 'd:\pasta.dat');
reset (DataFile);
ultimo := FileSize(DataFile);
seek (DataFile,ultimo);
read (DataFile, Pasta);
FGiorno := Pasta.giorno;
FMese := Pasta.mese;
FAnno := Pasta.anno;
label1.caption := ('Ultimo record n° ' + intToStr(ultimo));
label2.caption := ('Ultima data = ' + IntToStr(FGiorno)+' ' +
IntToStr(FMese)+' ' + IntToStr(FAnno));
end;
Ebbene, anzichè 7221 record me ne legge 3610, cioè la metà
e in ultima data mi da dei numeracci, tipo 196627 4917203 4849735.
Domanda:   dove sbaglio?????
Grassie a tutti quelli, anche uno solo:-))), che vorranno dipanare questo
mistero, almeno per me:-)))
Resto in trepppida attesa:-)))
Enrico

Il problema e' che non puoi leggere un file scritto con VB da Delphi, le
strutture dati contenute all'interno del record occupano un numer di byte
diverso tra un linguaggio e l'altro. Ti consiglio di esportare da VB tutti i
dati su un file di testo, e poi in Delphi di reimportarli ricreando ex novo
il file dati.
Ciao, Sandro

   end;
Controlla sulla guida di VB che integer sia un intero a 32 bit e non a
16. In Delphi ne ha 32.
Saluti
Paolo Arosio

 ha scritto nel messaggio
news:b63qbr$1be58$1...@ID-43509.news.dfncis.de...
Ciao,
purtroppo mi confermi quello che avevo temuto:-((
Pensavo ci fosse un modo per poter utilizzare lo stesso archivio.
L'archivio fatto con VB, DEVE rimanere, perchè vi sono i vecchi prg
che l'utilizzano, dovrei farne un altro per Delphi e rimane il problema
aggiornamento
ma, qualche consiglio?.
Grazie
Enrico



Ciao,
confermo, il tipo Integer in VB è a 16 bit.
secondo te, convertendo l'archivio di VB
dal tipo Integer a Long(32 bit) tutto si aggiusta?
Grazie
Enrico.


 dal tipo Integer a Long(32 bit) tutto si aggiusta?
Piu' semplicemente, se ti bastano 16 bit, dichiara il tuo record in
pascal con tipi a sedici bit (word se unsigned, altrimenti smallint).
Con questo il recordsize dovrebbe essere a posto.
Saluti
Paolo Arosio
PS
se hai disponibile un file su disco e ne sai il formato e' _impossibile_
non riuscire ad importarlo.
PA

 Enrico <enr...@NOSPAM.it> scriveva fra l'altro:
Salve,
finalmente il server funziona:-((
giustissimo, se si trattava di "smanettare" con VB, non avevo problemi,
ma con Delphi........
A proposito di Delphi, come già detto non ne so nulla, ma dato che
voglio passare al Pascal, ho cercato nel Web e non, dei libri che ne
spiegassero la sintassi, le procedure, ecc. ecc.
Ho acquistato i seguenti volumi, trovati in libreria e sul Web,
purtroppo, rispetto ai prodotti della MS, non c'è quasi niente:
Delphi 2 di Michelle M. Manning - Apogeo
Il manuale di Delphi 4 di Xavier Pacheco, Steve Telxeira - Jackson libri
Laboratorio di Delphi di Nando Dessena, Uberto Barbini  - Apogeo
e sul Web un corso di Carlo Marona.
Beh!, ho imparato più da questo minicorso che dai libri:-((
infatti i libri partono dal presupposto che si conoscano già le basi.
Dato che anche voi avete dovuto studiare/imparare tale linguaggio,
vorrei rivolgervi una preghiera, un'anima pia mi può indicare:
1) al momento vado con Delphi 6 personal, trovato in un vecchio di CD,
     se acquisto la versione 7 personal originale, i volumi che trovo nella
confezione
    sono in lingua italiana? (l'inglese purtroppo lo mastico poco, solo
quello scolare):-(
2) qualche titolo di libro(in italiano), ancora in in vendita, che insegni i
fondamenti
     di tale linguaggio???
Vi ringrazio e saluto
Enrico
