Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Tradurre da python un piccolo programmino
Forum - C# / VB.NET - Tradurre da python un piccolo programmino

Avatar
blaster (Normal User)
Newbie


Messaggi: 2
Iscritto: 01/02/2010

Segnala al moderatore
Postato alle 20:13
Martedì, 14/06/2011
Ciao a tutti, vorrei tradurre questo piccolo programmino creato in python in vb.net così da poterlo inserire in una mia applicazione

Codice sorgente - presumibilmente C# / VB.NET

  1. print("Insert Host link FCS")
  2. x = input()
  3. fcs = 0
  4.  
  5. for a in x:
  6.     fcs = ord(a)^fcs
  7.  
  8. print("FSC = " + hex(fcs))



il problema è nel ciclo, in pratica se ho capito bene for a in x vuol dire che se io metto una stringa in in ingresso tipo "@00RD10000010" a ogni giro lui mi seleziona una lettera e me la converte poi dopo fa la somma e me la converte in esadecimale.

Il programma che avevo pensato (e che non funziona :D) era una cosa tipo questa
Codice sorgente - presumibilmente VB.NET

  1. Dim fcs, a As String
  2.         For Each lettera As String In TextBox1.Text
  3.             fcs = Asc(lettera)
  4.             TextBox2.Text = TextBox2.Text & Hex(fcs)
  5.         Next


solo che non so come tradurre le ultime istruzioni. Penso che l'errore sta nel fatto della somma che deve fare bit a bit.
In pratica questo è un programma che mi calcola il checksum che poi devo trasferire in un mio programma dopo


Ultima modifica effettuata da blaster il 15/06/2011 alle 0:31
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Up
1
Down
V
Segnala al moderatore
Postato alle 14:06
Mercoledì, 15/06/2011
I due codici che hai scritto fanno due cose completamente diverse. Inoltre non puoi usare un foreach sulla proprietà Text. Il foreach serve per enumerare elementi di una collezione: evidentemente una stringa non è una collezione di stringhe, ma al più una collezione di caratteri:
Codice sorgente - presumibilmente VB.NET

  1. For Each lettera As Char in TextBox1.Text.Chars
  2.  
  3. Next


Poi, in python esegui uno xor fra ord(a) e fcs, mentre in vb fai un semplice assegnamento. Mi sembrano due operazioni palesemente differenti:
Codice sorgente - presumibilmente C# / VB.NET

  1. fcs = Asc(lettera) Xor fcs


Infine, ad ogni iterazione, aggiungi il codice del carattere alla textbox, cosa che nello script iniziale non è nemmeno presente.

Il codice seguente è per una console app
Codice sorgente - presumibilmente VB.NET

  1. Dim x As String
  2. Dim fcs As Int32
  3.  
  4. Console.WriteLine("Insert Host link FCS")
  5. x = Console.ReadLine()
  6.  
  7. fcs = 0
  8. For Each a As Char in x.Chars
  9.    fcs = Asc(a) Xor fcs
  10. Next
  11.  
  12. Console.WriteLine("FCS = {0:X8}", fcs)



"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM
Avatar
Poggi Marco (Member)
Guru


Messaggi: 950
Iscritto: 05/01/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 21:26
Martedì, 14/06/2011
?? Non riesci a dichiarare una variabile in vb.net ??

Potresti, ad esempio, implementare un ciclo For Each (http://msdn.microsoft.com/en-us/library/5ebk1751(v=VS.100) ...

a - blaster - 14/06/11 23:10
No, mi sono espresso male - blaster - 14/06/11 23:10
Ho modificato il post principale :D - blaster - 14/06/11 23:15


Nulla va più veloce della luce, quindi rilassati.
PM