Newsgroup: it.comp.lang.delphi
Titolo: calcolare bytes di un cd

Ciao a tutti,
Questa funzione calcola il numero di bytes di una str, che può essere: una
dir anche mappata da rete, ma secondo voi perchè non riesco a calcolare i
bytes di un cd?
Allora, se ci sono 5 files nella root del cd es, z:\*.* questi vengono
calcolati, ma se esiste una dir o altre sotto-dir non vengono calcolati i
bytes.
procedure FindSizeDir(Str: string);
    var
        MySearch: TSearchRec;
        FindResult: Integer;
    begin
        FindResult:=FindFirst(Str+'\*.*',
                        faArchive+faHidden+
                        faAnyFile+faVolumeID+
                        faSysFile+faReadOnly+faDirectory,
                        MySearch);
        while FindResult=0 do
        begin
            if (MySearch.Attr=faDirectory) and
                (MySearch.Name<>'.') and
                (MySearch.Name<>'..') then
            begin
                FindSizeDir(Str+'\'+MySearch.Name)
            end
            else
            begin
                TotalSize:=TotalSize+MySearch.Size;
            end;
            FindResult:=FindNext(MySearch);
        end;
        FindClose(MySearch);
    end;

             if (MySearch.Attr=faDirectory) and...
Devi invece:
if (MySearch.Attr and faDirectory=faDirectory) and...
In quell'altro modo salti dalla condizione le directory che hanno anche
altri attributi attivi. Nel cd tutti i files e le directories hanno
l'attributo ReadONly.
L'attributo di ricerca faAnyFiles comprende anche tutti gli altri. Usa solo
quello. Come hai fatto è sbagliatissimo. Se proprio vuoi usarli tutti, cosa
inutile, invece di "+" usa "or".
Ciao
Giuseppe

            if (MySearch.Attr=faDirectory) and
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
meglio
 if (MySearch.Attr and faDirectory = fadirectory) and
prova cosi': Attr puo' contenere piu' attributi contemporaneamente. Se
per esempio avessi una directory faDirecory and faReadOnly col tuo
sistema la salteresti :)
Ciao.
-- 
"La velocità luce non è sufficiente Comandante Nunziatella, 
dobbiamo passare alla velocità smodata!"


Grazie a entrambi

 bytes di un cd?
Non lo so, però mi sembra strano che non vi sia una funzione a livello di
sistema che restituisca lo spazio occupato dall'unità cd.
Vero è, che i cd usano un file system di tipo RAW, come le unità
tradizionali di tipo FAT etc, ma in ogni caso mi sembra assurdo se non
impensabile ragionare per somma diretta delle dimensioni di tutti i file
associati alle varie cartelle e sottocartelle (file nascosti inclusi).
Occorre sempre e comunque considerare che deve esistere sempre e comunque
una tabella di allocazione file e quindi credo occorra operare li non
altrove.
Uno studio più approfondito del file system RAW forse aiuta a trovare una
soluzione più ottimale al problema. Anche perchè si tratta di una
problematica di uso ricorrente, e quindi è impensabile che ogni volta
occorra fare di sana pianta la funzioncina per calcolare uno a uno. (Ci sono
anche i tempi tecnici che influenzano, es: quelli di accesso al file).
Cooper.
-- 
------------------------------------
BlueWare di Impastato Marcello
 [web] 
http://www.blueware.it
 [msn] 
coo...@blueware.it
 [icq] 146781935
 [Irc] 
http://www.italchat.it

Cooper.
PLONK


Davide wrote:
<SNIP>
Soluzione alternativa (se ti serve sotto Win95 pre-OSR 2 dovrai usare la
GetDiskFreeSpace)
var
  iFreeSpace, iTotalSpace: Int64;
  iFreeTotal: Int64;
begin
  GetDiskFreeSpaceEx('F:\', iFreeSpace, iTotalSpace, @iFreeTotal);
  ShowMessage(IntToStr(iTotalSpace));
HTH,
--
Andrea /\/\agni
ICQ#: 174108000


<FLAME ON>
Ignoro i motivi del tuo plonk perchè nella mia coscienza non capisco dove ti
abbia offeso, considerando che vedo il tuo nome/cognome per la prima volta,
ma a parte questo si vive bene anche senza di te per la serie... tutti sono
importanti, ma nessuno è indispensabile.
Se sei uno dei tanti lameracci, la tua perdita per me è irrilevante. Se sei
una persona intelligente, peccato, lo stai dimostrando nella maniera
sbagliata.
</FLAME OFF>
Cmq, a parte tutto a me sembra effettivamente strano poi se effettivamente
non c'è e bisogna quindi costruirsela è un altro discorso.
Ma a parte tutto, se un cd contiene 50.000 file andarselo a sfogliare file
per file e calcolare la dimensione totale richiederà un certo tempo,  e piu
sono i file e più questo tempo sarà maggiore.
Un accesso alla RAW del CD dovrebbe agevolare la determinazione dello spazio
occupato sul CD essendo il fylesistem di quest'ultimo. Poi non so.
Cooper.

 so. Cooper.
Su questo siamo tutti d'accordo...


occupato sul CD essendo il fylesistem di quest'ultimo. 
Sarà mica "filesystem" ?
 


Tu lo stai dicendo.


Quando si scrive velocemente, può succedere di mettere una I al posto di una
Y o di scambiare le posizioni di due lettere.... cmq se proprio vogliamo
essere pignoli anche il tuo modo di scrivere è errato, per correttezza il
termine corretto sarebbe: file-system.
Cooper.

 Tu lo stai dicendo.
Tranquillo, forse un giorno riuscirai a cogliere l'ironia...
Io però non posso indicarti la via, devi sbagliare da solo... ("Devi
sperimentare, e fare un lavoro di ricerca", parole tue)


 Quando si scrive velocemente, puň succedere di mettere una I al posto
Prova a scrivere piů piano, forse il tuo neurone Johnny riesce a coordinare
meglio le dita...
Avrai mica scritto tu l'algoritmo pure per quello?


termine corretto sarebbe: file-system.
Lo so benissimo, sei davvero convinto di poter insegnare cose di
questo tipo a chi frequenta questo gruppo ?  Il mio suggerimento era
in relazione a quanto tu hai scritto: "fylesistem" č in realtą
"filesystem".


Se lo sapevi (come sostieni) avevi un motivo in più per farmi notare due
errori anzichè uno... e nel tuo caso, l'interesse a far notare gli errori
degli altri (e non i tuoi) è palese.
Ne consegue (deduzione logica) che di fatto non lo sapevi... per cui....
Cooper.

vorrei evitare asm pero...)...è giusto una curiosità!
Il linguaggio che io ti consiglio e' un misto di C e assembly.
Impossibile evitare l'asm, almeno per le fasi di boot.
Il kernel puo' essere benissimo scritto in C (viene di fatti caricato
nella fase di boot), cosi' come il file-system e il gestore della
memoria. 
[...]


Non è che abbia una rilevanza questo post, però ignorando l'errore, ti sei
fatto complice dello stesso, dimostrando di non sapere... esempio in oggetto
è scritto:
"Oggetto:Re: Come si programma un sistema operativo?"
Come è ben noto, è il COMPUTER che si programma, non il sistema operativo i
quanto è un programma in se, di conseguenza (salvo prova contraria) nessun
programma ha le facoltà di autoprogrammarsi... a maggior ragione se si parla
di sistemi operativi.
Mi sorprende che non ti sia accorto di questa differenza e ti sei accorto di
una Y messa fuori posto :)  In ogni caso si ritorna al punto di partenza...
:)
Mi sa che se vuoi andare avanti per questa strada devi almeno trovare un
post privo di bug :)
Cooper

Scusatemi un attimo:
non mi va di mettervi fra gli utenti bloccati; la piantate per favore?
Alternativa: it.discussioni.litigi
Un enorme grazie

 punto di partenza... :)
Riesci a tornarci anche tu al tuo punto di partenza, please?
(Per chi non vuole/riesce a leggere tra le righe: hai proprio rotto...)



Sono pienamente d'accordo :) Dipende anche dalla buona volontą di laforgia,
come saprai per litigare (si sta litigando?) bisogna essere almeno in due.
Cmq ho voluto mettere OT in oggetto perchč sono a conoscenza del fatto che
molti di coloro che leggono sui newgsrop (non dico questo solo) filtrano
automaticamente i messaggi che hanno in oggetto il tag [OT].
Cooper :)

Come è ben noto, è il COMPUTER che si programma, non il sistema operativo
Evidentemente non ti sei reso conto che il mio messaggio era una
risposta.  Poi, se si vuol essere pignoli, quando si parla di
"programmare", ecco cosa dice la lingua italiana:
Lemma: programmare 
Sillabazione/Fonetica: [pro-gram-mà-re]  
Definizione: v. tr. 
1 mettere in programma, stabilire come programma: programmare una
produzione, uno sviluppo, un piano d'investimenti | proporsi,
progettare: programmare un viaggio | comprendere in un programma:
programmare un viaggio; programmare un piano di lavoro | programmare
un film, proiettarlo in una sala pubblica 
2 preparare il programma per un elaboratore elettronico. 
Indi, l'espressione "programmare un sistema operativo", intesa come
progettarne uno, è del tutto lecita.  Geniaccio, torna nella lampada
da cui sei uscito.

 E vissero tutti felici e contenti. Ok? :)))
Ok, mi correggo, non sei ignorante: sei stupido.
PLONK
--
Andrea /\/\agni
ICQ#: 174108000
-----------------------------------------------------------------
Vedo che ci hai ripensato ^_^ Allora conto un pokino eh? :))
Cooper.

Sono pienamente d'accordo :) Dipende anche dalla buona volontà di laforgia,
Laforgia si scrive maiuscolo.  


La lingua italiana come del resto le lingue vive, non sono "case-sensitive".
Cooper

La lingua italiana come del resto le lingue vive, non sono "case-sensitive".
I cognomi si scrivono in maiuscolo, ignorante.

 Ma non mi avevi plonkato? Cito:
Purtroppo uso piů di un newsreader (non avevi ancora fatto questa
"supposizione"? non č da te...) quindi _purtroppo_ non riesco ad evitare
tutti i tuoi messaggi.
Cos'č non ti va di poter sparare idiozie a campo libero?


 ha scritto nel messaggio
news:r3a6lvcu6giqn8ctt...@4ax.com...

Non siamo su: it.cultura.linguistica.italiano :) ma su: it.comp.lang.delphi.
Hai detto te, che questo è un newsgroup tecnico quindi queste piccole
formalità sono fuori luogo ^_^  A dire il vero sono anche fuori luogo queste
futili discussioni di cui ti ostini a porre fine....
Cooper.


E' più logico supporre che si usi un solo newsreader... che tanti....(perchè
complicarsi la vita quando si può semplificare? (parole tue, se non erro))
....come è altrettanto logico supporre che se mi plonki su un newsreader, se
ne usi più di uno a maggior ragione dovrei risultarlo anche su tutti gli
altri.
Cooper

 (parole tue, se non erro))
Sbagli, sbagli...
Il giorno (se mai arriverà) in cui scriverai una cosa giusta dovresti
offrire da bere (ah già, non ci sarà nessuno a festeggiare con te)...


Non siamo su: it.cultura.linguistica.italiano 
Peccato che questa non sia una questione di linguistica, ma una regola
generale, adottata da tutta la societą civile, caro Marcello
Impastato.  A conferma del fatto che non sei ignorante solo di
argomenti tecnici, ma delle regole basilari della nostra societą.  
Che pena che fai... davvero.
Ti plonko.

E' più logico supporre che si usi un solo newsreader... 
Logico per chi ? per te che spetacchi sulla tastiera da casa ?
Dubiti che vi sia qualcuno che possa leggere le news in ufficio/a casa
o in portatile mentre viaggia in aereo ?
Ti rendi conto di quanto sei patetico, vero ?


Ahhhh che sospiro di sollievo :)  Noto che lurki anche su IPLW :-) Speriamo
che non usi anche lui più newsreader ^_^ o meglio speriamo che mi plonki
anche su tutti gli altri (se li usa) :P
Cooper.
PS: Una regola generale della netiquette prevede il massimo rispetto fra gli
interlocutori.... come si può fare... a far valere una regola grammaticale
(giusta) e a ignorare una regola di vita altrettanto giusta e di sicuro più
importante della regola grammaticale? Mah :)
Cooper.

 ha scritto nel messaggio
news:mtb6lvc66m3hbq5ae...@4ax.com...

E' stata tralasciata la seconda proposizione (ovvero dove dicevo:   o plonki
su tutti i newsreader), fa comodo citare quello che conviene ^_^
Ma non mi avevi plonkato? E mo sbrigati su :) quanto ci stai a plonkarmi? :)
Cooper.

Cooper.
Ascolta Cooper: partecipo quotidianamente da piu' di un anno a ILCD, e posso
dirti che Laforgia assume certi toni solo se provocato. Avra' un carattere
spigoloso, e' vero, ma questo non mi ha impedito di scrivermi con lui anche in
privato, e parlare di cose della vita, non solo di informatica.
Questo per dirti che e' solo questione di sapersi controllare, a volte forse
anche di lasciar perdere su certe cose.
L'importante e' la convivenza pacifica, e ti posso garantire che Laforgia non
ha mai aggredito nessuno se non provocato.
Andrea lo conosco da un anno, te da 1 giorno (ti leggo su ICLD da oggi),e
tutti questi tuoi post non danno una buona immagine di te.
Il mio invito e' di chiudere tutti questi flames, e di contribuire normalmente
al ng come fanno tutti gli altri.
(sia chiaro, non ti sto dicendo che hai torto, e' solo un invito a chiudere
qui i flames)
ciao
-- 
Morde. 
(morde at programmer dot net)

importante della regola grammaticale? Mah :)
Sei ancora convinto che si tratti di una regola grammaticale e non č
cosě, ma te lo lascio credere, perché "...a lavar la testa all'asino
si spreca acqua e sapone".  
In quanto al rispetto tra le persone, guarda da che pulpito viene la
predica; ti invito a rileggere il simpatico dialogo tra te e
l'amichetto Zortek circa la mia persona.  
Giustamente, come si puň pretendere di farti rispettare una regola
come quella di un cognome da scrivere in maiuscolo, quando sei tipo
che offende gratuitamente ?  Ora, mettiti davanti a uno specchio e i
richiami al rispetto falli verso te stesso.
Se vuoi che la gente ti rispetti, impara a rispettare per primo; se
provochi, non meravigliarti del fatto che qualcuno ti rincorra con un
bastone in mano.
*plonk*


L'invito è da me accolto volentieri, Ma è giusto che debba essere
altrettanto accolto da tutte le altre parti interessate. Io non rispondo a
quelle parti di testo dal tono polemico (avrai notato leggendo il thread, ho
ignorato più volte parti di testo che a mio avviso erano strettamente
polemiche).
Auspico un miglioramento e un abbassamento di toni :)
Con stima, Cooper.


Ma per non essere più letti quante volte bisogna essere plonkati prima? Che
stai usando un secondo newsreader adesso? :)
Cooper.