elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 08:57  


Tema destacado: Sigue las noticias más importantes de elhacker.net en ttwitter!

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo, raul338)
| | |-+  problema escribiendo archivo vb6 api(caracteres raros)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: problema escribiendo archivo vb6 api(caracteres raros)  (Leído 1,148 veces)
z_ane_666

Desconectado Desconectado

Mensajes: 56


Ver Perfil
problema escribiendo archivo vb6 api(caracteres raros)
« en: 8 Septiembre 2011, 14:17 »

buenos dias ,he implementado un code para escribir contenido en un archivo (que ha de estar creado con el nombre ajhgk.txt y en la c:\ antes de usar el programa), realmente funciona, pero escribe caracteres extraños

Código:
Option Explicit
Const MOVEFILE_REPLACE_EXISTING = &H1
Const FILE_ATTRIBUTE_TEMPORARY = &H100
Const FILE_BEGIN = 0
Const FILE_SHARE_READ = &H1
Const FILE_SHARE_WRITE = &H2
Const CREATE_NEW = 1
Const OPEN_EXISTING = 3
Const GENERIC_READ = &H80000000
Const GENERIC_WRITE = &H40000000
Const CREATE_ALWAYS As Long = 2
Const FILE_ATTRIBUTE_ARCHIVE As Long = &H20
Const GENERAL_WRITE = 1073741824



Private Declare Function SetFilePointer Lib "kernel32.dll" (ByVal hfile _
As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh _
As Long, ByVal dwMoveMethod As Long) As Long
Private Declare Function WriteFile Lib "kernel32" (ByVal hfile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, ByVal lpOverlapped As Any) As Long
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function ReadFile Lib "kernel32" (ByVal hfile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, ByVal lpOverlapped As Any) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function GetFileSize Lib "kernel32" ( _
                ByVal hfile As Long, _
                lpFileSizeHigh As Long) As Long
Private Sub Command1_Click()

  Dim sSave As String, hOrgFile As Long, hNewFile As Long, bBytes() As Byte
    Dim sTemp As String, nSize As Long, Ret As Long
   
Dim charbuffer As String
charbuffer = "Anonymous!"
hNewFile = CreateFile("c:\ajhgk.txt", GENERIC_WRITE, FILE_SHARE_READ, ByVal 0&, OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE, 0)
WriteFile hNewFile, charbuffer, 10, Ret, ByVal 0&

 CloseHandle hNewFile
End Sub

en vez de escribir Anonymous! escribe ¼NÇT:#   


espero que me ayuden

saludos


En línea
$Edu$


Desconectado Desconectado

Mensajes: 1.416



Ver Perfil
Re: problema escribiendo archivo vb6 api(caracteres raros)
« Respuesta #1 en: 8 Septiembre 2011, 14:22 »

Usas el api por algo en especial?


En línea

"Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas." - Albert Einstein.
z_ane_666

Desconectado Desconectado

Mensajes: 56


Ver Perfil
Re: problema escribiendo archivo vb6 api(caracteres raros)
« Respuesta #2 en: 8 Septiembre 2011, 14:41 »

felizmente hace poco halle la solución, era pasar por byval el buffer, aca el codigo
Código:
Option Explicit
Private Const GENERIC_READ = &H80000000
Private Const GENERIC_WRITE = &H40000000
Private Const FILE_SHARE_READ = &H1
Private Const FILE_SHARE_WRITE = &H2
Private Const OPEN_ALWAYS = 4
Private Const FILE_BEGIN = 0


Private Declare Function SetFilePointer Lib "kernel32.dll" (ByVal hfile _
As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh _
As Long, ByVal dwMoveMethod As Long) As Long
Private Declare Function WriteFile Lib "kernel32" (ByVal hfile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, ByVal lpOverlapped As Any) As Long
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function ReadFile Lib "kernel32" (ByVal hfile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, ByVal lpOverlapped As Any) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function GetFileSize Lib "kernel32" ( _
                ByVal hfile As Long, _
                lpFileSizeHigh As Long) As Long
Private Sub Command1_Click()

  Dim sSave As String, hOrgFile As Long, hNewFile As Long, bBytes() As Byte
    Dim sTemp As String, nSize As Long, Ret As Long
    
Dim charbuffer As String
charbuffer = "Anonymous!"
hNewFile = CreateFile("c:\ajhgk.txt", GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_ALWAYS, 0, 0)
WriteFile hNewFile, ByVal charbuffer, 10, Ret, ByVal 0&

 CloseHandle hNewFile
End Sub


Disculpen por desviar el tema, pero creo que es mas comodo usar las funciones de visual basic . lo de arriba lo postee ya que las funciones de vb no escriben archivos de manera secuencial, sino linea por linea (caso append) y decici usar el api, pero veo que es complicadito...

¿alguna idea de poder hacer que la salida de append, la haga concatenada y no por linea a linea?

saludos
En línea
raul338
Moderador
***
Desconectado Desconectado

Mensajes: 2.372


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: problema escribiendo archivo vb6 api(caracteres raros)
« Respuesta #3 en: 8 Septiembre 2011, 14:47 »

No recuerdo exactamente cual era el metodo que lo hacia sin poner salto de linea, Print lo hace, creo que era Put o Write  :-\
En línea

RHL


Desconectado Desconectado

Mensajes: 968


mental


Ver Perfil
Re: problema escribiendo archivo vb6 api(caracteres raros)
« Respuesta #4 en: 8 Septiembre 2011, 18:02 »

bueno yo mas o menos tenia el mismo problemas hace un tiempo :P
pues lo que puedes hace es eso, concatenar las cadenas :P
creo que tendras que obtener primero el valor de la cadena y luego unirla con la nueva cadena :P para que el resultado quede asi:

ABCDEFG

y no asi:

A
B
C
D
E
F

pero aun asi, si lo haces asi es vergonzoso :P :xD
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problemita con caracteres raros ??
Software
Jess_Kapria 2 554 Último mensaje 18 Julio 2007, 22:25
por Jess_Kapria
caracteres muy raros
Wireless en Linux
a007 1 535 Último mensaje 22 Septiembre 2008, 15:35
por chinitiw
Caracteres raros al escribir
GNU/Linux
Debci 2 1,563 Último mensaje 11 Septiembre 2009, 18:40
por Debci
[Duda] Ayuda archivo con caracteres raros... D;
Programación Visual Basic
Psyke1 10 1,407 Último mensaje 25 Febrero 2011, 18:49
por Edu
Problema escribiendo un archivo en Python
Scripting
Arnau27 7 690 Último mensaje 8 Enero 2012, 12:46
por Arnau27
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines