[SOLUCIONADO] Problema al abrir archivo para enviar

Iniciado por ŞCØRPIØN-X3, 22 Abril 2011, 02:33 AM

0 Miembros y 3 Visitantes están viendo este tema.

ŞCØRPIØN-X3

wenas, modifique un code que lo que hace es abrir un archivo en binario y lo va enviando por parte usando winsock para luego ser mostrado en el otro formulario, este es el code:

Dim buf As String * 1024
Dim Todox As String
Open "C:\Archivo.txt" For Binary As #2
   Do While Not EOF(2)
       DoEvents
       Get #2, , buf
       Todox = "[KEYSINFO]" & Todox & buf
   Loop
Close
Form1.Winsock1.SendData Todox


el problema que tengo es que me tira error en la linea:

Do While Not EOF(2)

lo mas raro es que si lo ejecuto en un proyecto limpio funciona pero dentro de mi proyecto no funciona es como que entra en conflicto con otra funcion y nose que podra ser..  :huh: :huh: :-(  >:(

El error que me da es: nombre o numero de archivo incorrecto

gracias por su tiempo, espero sus respuestas  ;D

BlackZeroX

.
usa freefile

Código (vb) [Seleccionar]


Dim ff as integer
    ff= freefile
    if dir ( <ArchivoX> , vbarchive ) <> "" then
        open <ArchivoX> <criterios> as ff
            ... EOF(ff) ...
        close ff
    end if

The Dark Shadow is my passion.

ŞCØRPIØN-X3

#2
hola, muchas gracias por el code pero usando ese code tambien me tira error  :huh: pero si lo pongo en un proyecto limpio si funciona  :huh: la verdad que no entiendo que pasa u.u  :-( :-( nose tampoco que parte del code poner porque nose donde esta el error ¬¬ porfavor si alguien puede darme aunque sea una posible falla me avisa please :D :D
asi quedo el code usando freefile:

Código (vb) [Seleccionar]
Dim bufx As String * 1024
Dim Todox As String
Dim ff As Integer
ff = FreeFile

Open "C:\Archivo.txt" For Binary As ff
    Do While Not EOF(ff)
        DoEvents
        Get ff, , bufx
        Todox = Todox & bufx
    Loop
Close ff
Form1.Winsock1.SendData Todox

Edu

Creo q la idea en si esta mal pensada o no la entendi

ŞCØRPIØN-X3

a que te referis no entendi xD, mira el archivo que necesito enviar por winsock es muy grande entonces con ese code lo que ago es abrirlo en binario y lo voy almacenando en buf que a la ves lo va enviando, basicamente lo que hace es enviarlo por partes usando winsock, ya que el winsock tiene un limite de bytes a enviar. Y lo que pasa es que parece que entra en conflicto con alguna lineas de mi proyecto  :huh: :huh:

Edu

Pero digo q por lo q leo enviara todo el contenido del archivo de una :S
Tendrias q poner el senddata dentro del bucle y sacar eso de todox y solo ir enviando buf.
Talvez me equivoco no se, pero de ultima ese no es tu problema, ni idea porq te dice ese error q nombras..

ŞCØRPIØN-X3

no esta bien el code pero lo que pasa es que en micode entra en conflicto con algo, porque si lo pongo en un proyecto limpio el code anda re bien y manda bien los datos pero cuando lo agrego a mi code tira ese error pero creo que ya se porque es mañana voy a hacer unas pruebas aver que pasa xD y posteo como me fue :P gracias por responder a los dos :D

BlackZeroX

#7
.
Intenta así al do while hay que meterle una expresion no obvia cosas con not xS

Código (vb) [Seleccionar]


Do While EOF(ff) = false



pero veo que hacer algo muy lineal que no tiene caso asi que intenta mejor asi:

Código (vb) [Seleccionar]


const sfile as string = "C:\Archivo.txt"
Dim bBuff() As byte  '  // usamos byte por que con string nos consumira el doble de memoria.
Dim ff      As Integer
    if (dir(sfile,vbarchive)<>"") then
        ff = FreeFile
        Open (sfile) For Binary As ff
            if ( LOF(ff) > 0 ) then
                redim bBuff( 0 to (LOF(ff)-1) ) ' // con una string seria    sBuff=space(LOF(ff))    sin el "-1"
                Get ff, , bBuff
            end if
        Close ff
        Form1.Winsock1.SendData bBuff
    end if



P.D.: no tengo instalado el vb asi que espero funcione lo que te he puesto.

Dulces Lunas!¡.
-
The Dark Shadow is my passion.

ŞCØRPIØN-X3

gracias por la respuesta, estoy probando pero le falta el loop para que se repita la operación y falta ponerle un limite a bBuf

raul338

lei el temas muy por arriba. Capaz que ya abris el archivo antes y no lo cerras a tiempo, entonces lo terminas abriendo 2 veces. Pone puntos de interrupcion y depura tu programa