[Python] Letture file binario da Vb a Python

Stefano Dal Pra s.dalpra a gmail.com
Gio 1 Nov 2012 13:34:09 CET


2012/11/1 Daniele Varrazzo <piro a develer.com>:
> On 2012-11-01 10:17, Stefano Dal Pra wrote:
>>
>> 2012/11/1 Daniele Varrazzo <piro a develer.com>:
>>>
>>> On 2012-11-01 09:09, Stefano Dal Pra wrote:
>>>>
>>>>
>>>> Mah, direi che fa qualcosa tipo questo:
>>>
>>>
>>>
>>> Grazie per il top posting, così è facile seguire domande e risposte no?
>>
>>
>> Si', per alcuni e' piu' facile.
>
>
> Per noi lo è: questo è l'importante. Altre ML possono avere altre
> preferenze, ma non è rilevante qui. La cosa viene reiterata ogni settimana
> ma tu ovviamente sei superiore.
>
Mi piacciono la semplicita' e l'amichevolezza di python, che trovo si
rispecchi nella
semplicita' ed amichevolezza cosi' frequente in questa lista. Per
questo, malgrado
ti risulti ovvio, ti rassicuro che non sono affatto superiore, e che
non avrei mai considerato ovvio
concludere cosi' nei confronti altrui. Se ti fa piacere puoi
approfondire questo argomento in
privato, se anche tu trovi che non arricchisca poi molto la conoscenza
su python.

>
>
>> Pero' mi rimangono due dubbi:
>> - sugli esempio di uso stringhe in VB mi sembra che gli indici partano
>> da 0, come in python.
>
>
> Uso mid da quando si chiamava mid$ e lo schermo era blu con la cornice
> azzurra. Il primo carattere è 1.
>
> http://msdn.microsoft.com/en-us/library/05e63829(v=vs.80).aspx
>
>
Ok, grazie; non avendo modo di verificare, mi ero fidato del primo
esempio trovato:
--------
strProva = "Ciao a Tutti"
str2 = Mid$(strProva, 5, 4)
'A str2 viene assegnato il valore "a Tu"
-------

qui:
http://www.pierotofy.it/pages/guide_tutorials/Visual_Basic/Stringhe_in_Visual_Basic/
Da cui deducevo che si conta da zero:

0 C
1 i
2 a
3 o
4
5 a
ecc.

Morale: in caso di dubbio, meglio la doc ufficiale :-)

Spero che il porting VB --> py abbia buon esito!

Ciao

>
>> - Mi sembra che String sia per default unicode (quindi un carattere
>> --> 2 byte) tranne quando
>> si specifica direttamente la stringa tra "".
>> In questo caso B e' un buffer binario, quindi anziche B[n] si dovrebbe
>> prendere B[2*n : 2*n + 2] ?
>
>
> Il file è aperto in maniera binaria: vengono letti dei byte. Non viene fatta
> nessuna decodifica.
>
>
>
>> O in qualche modo "python way" gestire il caso di stringhe unicode?
>
>
> Sì, ci sono le stringhe unicode appunto, ma fanno loro i calcoli delle
> posizioni in memoria. Moltiplicare per 2 assume stringhe unicode memorizzate
> in UTF16, che non è sempre corretto (python può essere compilato per usare 4
> byte in memoria, e Py 3.3 ha unicode a dimensione variabile, a senconda del
> contenuto).
>
>
>
> --
> Daniele Varrazzo - Develer S.r.l.
> http://www.develer.com
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python


Maggiori informazioni sulla lista Python