Título: Traducir este código a vb.net Publicado por: Borito30 en 5 Junio 2017, 02:29 am Hola mi pregunta es sobre todo en los for se me hace complicado y en el stream. El completo código sería:
Código
Por lo menos si no quereis indicarlo enterlo simplemente con los for y el streamer sería suficiente para comprender mejor las diferencias. gracias. Título: Re: Traducir este código a vb.net Publicado por: Serapis en 5 Junio 2017, 02:41 am Un bucle for en C, no es tan distinto de un bucle for en VB... aunque me parece más transparente el de Vb, es cuestión de acostumbrarse...
Desgajo los bucles, así analizas y comparas las partes: for (int i = 0; i < bytes.Length; i++) For i = 0 to bytes.length step 1 ' en VB si Step =1, se puede omitir... Un Stream no es distinto en VB que en C. En el siguiente enlace, verás que los métodos, constructores, etc... son idénticos, solo cambia a veces la sintaxis conforme a cada lenguaje. de hecho pulsa en una sintaxis, y luego en la de VB, para ver las diferencias https://msdn.microsoft.com/es-es/library/system.io.stream(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1 Si el problema es que no entiendes muy bien la clase, debajo de las propiedades y métodos, vienen unos comentarios que te ayudarán a entenderlo mejor. Y debajo de los comentarios hay un ejemplo (muy escueto) de código en C# y el mismo en VB Título: Re: Traducir este código a vb.net Publicado por: Borito30 en 5 Junio 2017, 03:48 am Esta parte se me hace un poco complicada:
Código: for (int i = 0; i < stream.Length; i++) Intente hacer un ejemplo basado en lo que me pasastes: Código: Dim stream As Stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("skip.skip.exe") Pero me da algunos errores: Código: '.' expected. (BC30287) - Por lo que supongo que en: Código: outfile.Read((byte)stream.ReadByte()) Varia bastante a como se hace en c#. Título: Re: Traducir este código a vb.net Publicado por: Eleкtro en 5 Junio 2017, 20:13 pm Esta parte se me hace un poco complicada: Código: Using outFile As New FileStream(...) Pero me da algunos errores: Código: '.' expected. (BC30287) - Por lo que supongo que en: Código: outfile.Read((byte)stream.ReadByte()) Varia bastante a como se hace en c#. En la IDE de Visual Studio, puedes pasar el puntero del ratón por encima del método outfile.Read() y comprobar cual es el tipo de datos que éste acepta como argumento. O puedes usar el Object Inspector de Visual Studio para comprobar lo mismo, o directamente puedes acudir a la MSDN y leer la documentación del método FileStream.Read(). Luego de que lo hayas hecho puedes regresar aquí y decirnos si realmente existe alguna sobrecarga de ese método que acepte un valor de tipo"Byte" como le estás intentando pasar. (es ironia) Lo que intento decir es que puedes hallar la causa a un problema tan básico tan solo informándote un poquito y sin salirte de la IDE, en vez de tener que escribir una pregunta en un foro... te basta con buscar en la MSDN. el otro problema es que esta orden la has escrito directamente usando la sintaxis de C#: (Byte)stream.ReadByte(). En VB.NET la conversión sería así: CByte(stream.ReadByte()) Con respecto a este error: Citar 'inFile' is not declared. It may be inaccessible due to its protection level. (BC30451) - ...Bueno, en el código original que has mostrado no existe ningún miembro llamado "inFile", y no has mostrado su declaración, así que es imposible decirte como corregirlo, pero de todas formas el error se explica por si solo: El miembro "inFile" no está declarado, o no lo has declarado con una accesibilidad que te permita usarlo desde el nivel de accesibilidad del miembro desde el que estás intentando acceder a él.Todas estas explicaciones de aquí arriba podría habermelas ahorrado y no explicar nada, por que lo cierto es que no tienes que mandar a nadie traducir un código de C# a VB.NET cuando eso puedes hacerlo tú mismo usando cualquier conversor online u offline de .NET, como por ejemplo http://converter.telerik.com/ y, a menos que el conversor producza una traducción de código con errores entonces no veo motivo para formular este tipo de preguntas... (o a menos que quieras comprender y aprender a hacerlo por ti mismo ) Código
Como puedes comprobar, si que hay diferencias, la mayor diferencia es que tú estás intentando utilizar la función FileStream.Read() cuando en el código original se utiliza el método FileStream.WriteByte()... Saludos! |