Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - x64core

#1721
Software / como subir archivo y traducirlo
18 Septiembre 2011, 06:36 AM
tengo ese problema noce como subir un archivo a un sitio ( primero ese es mi primer problema quiza no tengo en donde subir el archivo ) para luego traducirlo( esta en ingles, osea al español ) con el traductor de google.

yo sé que el traductor de google traduce documentos tambien pero por algun motivo yo ya hice la prueba y la traduccion es diferente :S
osea que quiero decir que me hace mejor la traduccion si escribo el enlace en el traductor y me abre el documento pdf en el navegador :P porque? noce pero ya lo comprobe :P

bueno pues por ese motivo quiero saber adonde subir el archivo para visualizarlo en el navegador y luego traducrlo con google o si sabeis de algun metodo de ante mano gracias :)
#1722
esta interesante y si es un project medio grande :P
y como dices BlackZeroX me parece que se vayan poniendo como retos yo en el proximo que se publique si participare, en los ultimos que se han publicado siempre me animo al principio pero al final me frustro :xD pero en este que viene si participare  >:D

bueno y tambien hay poca gente que participa en los retos :P
bueno una parte es porque no todos se conectan la misma semana o los diaz de los retos :P pero en general unos 4 o 5 :P
#1723
a mi me interesa el tema y eso del interprete no lo entiendo muy bien :P
hay crear programar funciones para cada una de las peticiones que propones y unirlas?
#1724
Gracias ;D
#1725
Cita de: BlackZeroX▓▓▒▒░░ en 17 Septiembre 2011, 22:07 PM
.
Revisa este codigo... te lo acabe de hacer solo para que veas como es una String Unicode en vb6...

En los primeros 4 bytes se almacen la longitud en BYTES de la cadena... despues se empiesan por poner los numeros en ascii de cada letra, separados por el ascii 0 o byte 0, y tengo entendido que la cadena termina con 2 bytes 0 en esto ultimo me puedo equivocar pero no lo creo ya que de lo contrario el api lstrlenW (corrijanme por favor ya que no recuerdo su nombre esactamente), no sabria hasta donde termina dicha cadena en Unicode...

El tipo de string es:  CWSTR

Código (vb) [Seleccionar]


Option Explicit

Private Declare Sub PutMem4 Lib "msvbvm60" (ByVal Addr As Long, ByVal NewVal As Long)
Private Declare Sub GetMem4 Lib "msvbvm60" (ByVal Addr As Long, ByVal RetVal As Long)

Private Sub Form_Load()
Dim bStrUnicode(17)     As Byte     '   //  4 bytes (Longitud), Num Caracteres * 2, 2 bytes 0
                                   '   //  (4 + (6*2) + 2) = 18 es decir 0 - 17 dimensiones...
Dim i                   As Long
Dim pStr                As String
Dim lpStrBack           As Long
   
   '   //  Primeros 4 bytes...
   PutMem4 ByVal VarPtr(bStrUnicode(0)), 12
   i = &H4
   '   //  Bytes de los caracteres + su separador...
   bStrUnicode(i) = Asc("M"): bStrUnicode(i + 1) = 0: i = i + &H2
   bStrUnicode(i) = Asc("i"): bStrUnicode(i + 1) = 0: i = i + &H2
   bStrUnicode(i) = Asc("g"): bStrUnicode(i + 1) = 0: i = i + &H2
   bStrUnicode(i) = Asc("u"): bStrUnicode(i + 1) = 0: i = i + &H2
   bStrUnicode(i) = Asc("e"): bStrUnicode(i + 1) = 0: i = i + &H2
   bStrUnicode(i) = Asc("l"): bStrUnicode(i + 1) = 0: i = i + &H2
   '   //  Ultimos 2 bytes infdican el final de la cadena Unicode...
   bStrUnicode(i) = 0: bStrUnicode(i + 1) = 0          '   //  Bytes a mi parecer Obligatorios... corrijanme
   
   pStr = "BlackZeroX"
   GetMem4 ByVal VarPtr(pStr), VarPtr(lpStrBack)       '   //  Repaldo del puntero al bloque...
   MsgBox pStr
   PutMem4 ByVal VarPtr(pStr), VarPtr(bStrUnicode(4))  '   //  Apuntamos al indice 4 de bStrUnicode
   MsgBox pStr
   PutMem4 ByVal VarPtr(pStr), lpStrBack               '   //  Restauramos... es obligatorio o causaria un crash...
   MsgBox pStr
   
End Sub



en pocas palabras la estructura de una string en vb6 seria algo asi... estrictamente en este orden.

Código (Vb) [Seleccionar]


Type CWStr
   lLn         As Long     '   // 12. Deben ser igual a la longitud en bytes de bData... (6 * 2)
   bData(11)   As Byte     '   // Miguel; Estas dimenciones dependen de la longitud de la cadena. en este caso es de longitud (6 * 2).
   iEnd        As Integer  '   // Se iguala a 0 para setear el termino de la cadena. integer = 2 bytes...
End Type



Temibles Lunas!¡.


gracias tio entendi la estructura de las cadenas muy buenos tus codigos aunq al veces me cuesta entenderlos pero los explicas bien ;D
y pues segun que en cada caracter termina con un byte en 0 eso sucede porque el caracter es ascii no?
si fuera algun caracter unicode como una letra japonesa utilizara ese byte no? y el caracter ya no tuviera byte con un 0... ?


Cita de: BlackZeroX▓▓▒▒░░ en 17 Septiembre 2011, 23:13 PM
1ro:  LPSTR    es una Definicion/Alias de un puntero a una cadena ANSI de PSTR.

2do:
Aun que al final la cadena termina en 2 bytes 0... guiandome en el Alias LPWSTR.
Aun que el tipo correcto de las strings es BSTR.

Dulces Lunas!¡.

EDIT:
estaba incorrecto  ;D
#1726
con sendmessage puedes hacerlo de vb a notepad y viceversa
#1727
Cita de: cobein en 16 Septiembre 2011, 22:41 PM
Dos acalaraciones, primero los strings son unicode en memoria asi que strptr es el inicio y de ahi en mas la posicion es caracter * 2, el segundo parametro en este caso (asc("Z")) es el byte que vas a poner en la memoria.

    Dim CADENA          As String
    Dim dirCAD          As Long
    Dim Valor           As String

CADENA = "ABCDEFGH"
Valor = "Z"
dirCAD = StrPtr(CADENA)


PutMem1 dirCAD + 2, Asc("Z")
Debug.Print CADENA


gracias cobein analizando el codigo que pasa con el otro byte? en la funcion asc("Z") el tamaño es de un byte no? el numero que devuelve no es mayor que 255 :P por eso tengo esa duda


Cita de: BlackZeroX▓▓▒▒░░ en 16 Septiembre 2011, 23:36 PM
.
Cada caracter esta separado por un byte NULO o con valor 0... por ello es mejor usar PutMem2 pero igual y solo quieres hacer alguna otra cosa...

Código (vb) [Seleccionar]


Option Explicit

Private Declare Sub PutMem1 Lib "msvbvm60" (ByVal Addr As Long, ByVal NewVal As Byte)
Private Declare Sub GetMem1 Lib "msvbvm60" (ByVal Addr As Long, ByVal RetVal As Long)

Private Sub Form_Load()
Dim sStr            As String
Const NAME          As String = "Miguel Angel"
Const CARACTER      As Long = &H2               '   //  Posicion del caracter a leer.
Dim bChar           As Byte

    sStr = "ABCDEFGH"
   
    MsgBox sStr
    GetMem1 (StrPtr(NAME) + ((CARACTER * 2) - 2)), VarPtr(bChar) '   //  Leemos un Byte...
    PutMem1 (StrPtr(sStr) + 2), bChar         '   //  Escribimos el byte en la posicion de "B"
    MsgBox sStr
End Sub



@Psyke1

Si usas SysAllocStringLen deberas liberar la memoria con SysFreeString.

Dulces Lunas!¡.


gracias BlackZeroX tengo una duda segun lo que dices, e leido que las cadenas para las api se almacenan en formato LPSTR
entonces es asi:

       |H|O|L|A|/0|

entonces lo que dices que cada caracter al final tiene un caracter nulo :P no es lo mismo que LPSTR ya que el caracter nulo lo lleva al final de la cadena
mas lo que dice cobein que los caracteres se almacenan en memoria en formato Unicode que creo que son 2 bytes
y entonces seria mas otro byte del caracter nulo? osea 3 byte :P no entiendo
o se me ocurre que el caracter nullo no requiere de ningun byte? o si verdad :P ?

#1728
bueno segun tu pregunta de enviar texto al NOTEPAD es al programa en si no? o formulaste mal la pregunta :P diferente es escribir un archivo de txt en vb
si lo que quieres es hacer lo primero usa sendmessage y sino para crear archivos de texto hay API como createfile , etc hay unas exactas para crear archivos de txt pero no recuerdo, busca.

#1729
buenas tengo una duda :P
estoy usando las funciones que vienen internas en vb
estoy con putmem1:

Código (VB) [Seleccionar]
Private Declare Sub PutMem1 Lib "msvbvm60" (ByVal Addr As Long, ByVal NewVal As Byte)


pues estaba haciendo unas pruebas usando copymemory y se me ocurrio esa funcion con cadenas pero noce si eso es posible ya que me da error este codigo:

Código (vb) [Seleccionar]
Dim CADENA          As String
Dim dirCAD          As Long
Dim Valor           As String

CADENA = "ABCDEFGH"
Valor = "Z"
dirCAD = StrPtr(CADENA)


PutMem1 dirCAD + 1, StrPtr(Valor)

bueno me lanza error de desbordamiento y creo que es porque en el segundo parametro necesito escribir un valor de un byte y estoy intentando escribir 4 bytes :P y no encuntro la forma correcta de hacer lo que quiero :P
practicamente lo que quiero es insertar la "Z" en el lugar donde esta "B"

con copymemory se hace facil:
y lo logro hacer pero se me ocurrio usar esa funcion o noce si esa funcion solamente trabaja con numero :P ya que con valores numericos ya lo hice y funciono y queria usarla con cadenas

Código (vb) [Seleccionar]

CopyMemory dirCAD + 2, StrPtr(Valor), 1


e probado pasando como segundo parametro el valor propio ( que eso es lo que pide el segundo parametro no? , no el puntero al valor) asi:

PutMem1 dirCAD + 1, Valor ' valor = "Z"

pero igual me lanza error de tipo y es logico
y tambien pense que era porque necesitaa dos bytes ( "Z" + "\0" )
y use putmem2 pero tampoco
bueno en si como se hace correctamente? ;D o definitivamente esas funciones no trabajan con cadenas ?
gracias


#1730
bueno en sentido que mejores e visto el codigo
y no me parece logico :P que agreges la fecha al menos que dejes tu PC encendida por diaz :xD o al menos que el programa se agrege al registro para iniciarse cada vez y verficar el dia y la hora

en este timer:
Código (VB) [Seleccionar]

Private Sub Timer2_Timer()
Label1.Caption = Time$
Label3.Caption = Date
End Sub


veo que tiene intervalo a 100, eso es demasiado rapido basta con verifcar cada segundo ( a 1000) te ahorras recursos.
y bueno en el segundo form no veo donde estan los botones de comando :P del codigo que veo de ellos :P y pues haz un selec case para los option button y guarda en una variable el dato nada mas para no complicart
y bueno hay un error en el codigo en el segundo form al hacer click en el optionbutton de cerrar sesion

suerte