Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Psyke1 en 24 Febrero 2011, 21:40 pm



Título: [Duda] Ayuda archivo con caracteres raros... D;
Publicado por: Psyke1 en 24 Febrero 2011, 21:40 pm
Tengo un archivo con un carácter extraño. Tipo : عربي...
Entonces cuando intento copiarlo a otro lugar, me da error... Nombre de archivo incorrecto...  :-(
Alguna solucion?  :huh: :huh:

DoEvents! :P


Título: Re: [Duda] Ayuda archivo con caracteres raros... D;
Publicado por: seba123neo en 24 Febrero 2011, 21:57 pm
ni idea porque te da el error, pero son caracteres unicode, en teoria si los copias a un campo de texto que no soporta este tipo de caracter, te muestra unos signos de interrogacion ????

por ahi hubo un post donde respondi como generar estos caracteres desde visual basic.

por ejemplo a donde los queres copiar.

el explorador de windows soporta estos caracteres.


Título: Re: [Duda] Ayuda archivo con caracteres raros... D;
Publicado por: Psyke1 en 24 Febrero 2011, 22:07 pm
El propio proyecto de vb se llama : Holaعربي.exe
Se debe copiar el mismo a "c:\" con el nombre : "Adios.exe"
Voy a buscar ese post... ;)

DoEvents! :P


Título: Re: [Duda] Ayuda archivo con caracteres raros... D;
Publicado por: Edu en 24 Febrero 2011, 22:40 pm
Pero no entiendo una cosa, si puedes usar lo de app.exename o q dices?


Título: Re: [Duda] Ayuda archivo con caracteres raros... D;
Publicado por: Psyke1 en 25 Febrero 2011, 01:17 am
@seba123neo
Supongo que te refierse a esto :
http://foro.elhacker.net/programacion_visual_basic/command_extraer_archivos-t319395.0.html;msg1580388#msg1580388
Nunca antes hice esto, y si soy sincero, no entiendo algunas partes del código... :-(

Pensé algo así, pero no funciona... :xD
Código
  1. Option Explicit
  2.  
  3. Private Declare Function GetModuleFileNameW Lib "kernel32" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
  4. Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileW" (ByVal lpExistingFileName As Long, ByVal lpNewFileName As Long, ByVal bFailIfExists As Long) As Long
  5.  
  6. Function WhereIam() As String
  7.    Dim bnUffer As String * 255
  8.    GetModuleFileNameW 0, bnUffer, 255
  9.    WhereIam = Replace$(bnUffer, vbNullChar, vbNullString)
  10. End Function
  11.  
  12. Private Sub Form_Load()
  13.    CopyFile StrPtr(WhereIam), StrPtr("c:\ByeBye.exe"), 0
  14. End Sub

@XXX-ZERO-XXX
Eso es lo primero que probé... y obvio que no funciona. :¬¬

DoEvents! :P


Título: Re: [Duda] Ayuda archivo con caracteres raros... D;
Publicado por: seba123neo en 25 Febrero 2011, 01:24 am
no, ese no es el post  :P

es este:

Caracteres Especiales en TextBox (http://foro.elhacker.net/programacion_visual_basic/caracteres_especiales_en_textbox_ayuda-t300836.0.html)

PD: preguntaste vos mismo en ese post  :P


Título: Re: [Duda] Ayuda archivo con caracteres raros... D;
Publicado por: seba123neo en 25 Febrero 2011, 01:58 am
aca tenes un ejemplo de como copiar un archivo con texto unicode, el link del post es para que te fijes que cada caracter tiene su codigo, en este caso tenes caracteres arabes creo, debes buscar su codigo para poder pasarselo a ChrW(), y con la api CopyFileApiW, lo podes hacer ya que la funcion Name de visual basic no soporta unicode en los nombres de los archivos.

Código
  1. Private Declare Function CopyFileApiW Lib "kernel32" Alias "CopyFileW" (ByVal lpExistingFileName As Long, ByVal lpNewFileName As Long, ByVal bFailIfExists As Long) As Long
  2.  
  3. Private Sub Form_Load()
  4.    Dim retval As Long
  5.    retval = CopyFileApiW(StrPtr("C:\" & ChrW(&H414) & ".txt"), StrPtr(StrConv("C:\copia.txt", 0)), 1)
  6. End Sub

el archivo que copia se llama "Д.txt" es un caracter unicode de rusia y corresponde al ChrW(&H414)

saludos.


Título: Re: [Duda] Ayuda archivo con caracteres raros... D;
Publicado por: Psyke1 en 25 Febrero 2011, 02:36 am
Gracias por todo una vez más sebas. ;)
Dejo este código de mi amigo coco que funciona perfectamente:
Código
  1. Option Explicit
  2.  
  3. Private Declare Function GetModuleFileNameW Lib "kernel32" (ByVal hModule As Long, ByVal lpFileName As Long, ByVal nSize As Long) As Long
  4. Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileW" (ByVal lpExistingFileName As Long, ByVal lpNewFileName As Long, ByVal bFailIfExists As Long) As Long
  5.  
  6. Private Sub CopyMyself(ByVal strTo As String)
  7.    Dim bvBuffer(255) As Byte
  8.    GetModuleFileNameW 0, VarPtr(bvBuffer(0)), 254
  9.    CopyFile VarPtr(bvBuffer(0)), StrPtr(strTo), 0
  10. End Sub
  11.  
  12. Private Sub Form_Load()
  13.    Call CopyMyself("C:\ByeBye.exe")
  14. End Sub

DoEvents! :P


Título: Re: [Duda] Ayuda archivo con caracteres raros... D;
Publicado por: Edu en 25 Febrero 2011, 15:22 pm
Pero no entiendo una cosa, si puedes usar lo de app.exename o q dices?

@XXX-ZERO-XXX
Eso es lo primero que probé... y obvio que no funciona. :¬¬

DoEvents! :P

Y porq es q no funciona? Por eso q dice Seba? de q la funcion no soporta caracteres unicode?


Título: Re: [Duda] Ayuda archivo con caracteres raros... D;
Publicado por: Psyke1 en 25 Febrero 2011, 16:28 pm
Y porq es q no funciona? Por eso q dice Seba? de q la funcion no soporta caracteres unicode?
Si.

DoEvents! :P


Título: Re: [Duda] Ayuda archivo con caracteres raros... D;
Publicado por: Edu en 25 Febrero 2011, 18:49 pm
Gracias!