hacker


Ingresar con nombre de usuario, contraseña y duración de la sesión
| Portal Hacker | Editorial | Descargas | Ezine |
Inicio Ayuda Ingresar Registrarse
04 de ſeptiembre de 2008, 11:06:45
Noticias: Caracteres maximos de las firmas
Para ver este enlace Registrate o Inicia Sesion
> leer

+  Foros pOrtal Hacker
|-+  Programacion
| |-+  Programación en general
| | |-+  Visual Basic (Moderadores: ranefi, crypto136, ziBboh, >> s E t H <<)
| | | |-+  Archivos Random en VB 2005 Express
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Archivos Random en VB 2005 Express  (Leído 690 veces)
javier234-
Recien llegado
*
Desconectado Desconectado

Mensajes: 5

Member, pOrtal HAcker


Ver Perfil
« : 10 de Febrero de 2006, 12:44:43 »

Alguien sabe que esta pasando? Escribe bien y correctamente
en el archivo, pero a la hora de leer, lee mal, como si no supiese
los bytes que tiene que leer
-----------------------------------------------------------------
Module Module1

    Sub Main()

        ' Count 30 for the string, plus 4 for the integer.
        FileOpen(1, "Estilos.DAT", OpenMode.Rando m, OpenAccess.Wri te, OpenShare.Lock Write, 34)
        ' Close before reopening in another mode.

        Dim Estilo1 As New Estilo
        Estilo1.Codigo Estilo = 64
        Estilo1.Nombre Estilo = ""
        Dim j As Long = 0
        Do
            j += 1
            Estilo1.Codigo Estilo += 1
            Console.Write(Estilo1.Codigo Estilo & " " & "Introduzca Nombre del Estilo: ")
            Estilo1.Nombre Estilo = ReadLine()
            If Estilo1.Nombre Estilo <> "" Then
                If Estilo1.Nombre Estilo.Length < 30 Then
                    For i As Integer = 1 To 30 - Estilo1.Nombre Estilo.Length
                        Estilo1.Nombre Estilo += " "
                    Next
                    Console.WriteL ine("*" & Estilo1.Nombre Estilo & "*")
                End If
                FilePut(1, Estilo1, j)
                Console.WriteL ine("Se copio en el archivo el Estilo")
            Else
                Console.WriteL ine("No se copio nada en el archico")
            End If
        Loop While (Estilo1.Nombre Estilo <> "")
        FileClose(1)

        FileOpen(1, "Estilos.DAT", OpenMode.Rando m, OpenAccess.Rea d, OpenShare.Lock Write, 34)
        Console.ReadLi ne()
        For i As Long = 1 To 15
            FileGet(1, Estilo1.Codigo Estilo, i)
            'FileGet(1, Estilo1.Nombre Estilo, i)
            Console.WriteL ine(i & " " & " " & Estilo1.Codigo Estilo & " " & "*" & Estilo1.Nombre Estilo & "*")
            Console.ReadLi ne()
        Next
        FileClose(1)

    End Sub

End Module

Public Structure Estilo
    Dim CodigoEstilo As Integer
    <VBFixedString(30)> Dim NombreEstilo As String
End Structure
 
 
 
 
En línea
ranefi
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,194


SELECT * FROM guapos WHERE papito_chulo = 'ranefi'


Ver Perfil WWW
« Respuesta #1 : 10 de Febrero de 2006, 02:02:36 »

Hola javier234-, buena tarde. Mira, no sé qué clase de error te aparece, pero espero y que la siguiente página te dé la respuesta, oye, encuentres o no la solución,     ¿podrías especificarnos exactamente cuál es tu problema y que mensaje te aparece o cómo sabes que no te está leyendo el archivo? Nos vemos.



Para ver este enlace Registrate o Inicia Sesion
Código de Visual Basic 2005
« Última modificación: 10 de Febrero de 2006, 02:46:29 por ranefi » En línea


SELECT * FROM mejores_batos_ del_mundo WHERE id = (SELECT DISTINCT id_guapo FROM los_mas_guapos _del_mundo WHERE papito_chulo = 'ranefi')
javier234-
Recien llegado
*
Desconectado Desconectado

Mensajes: 5

Member, pOrtal HAcker


Ver Perfil
« Respuesta #2 : 10 de Febrero de 2006, 05:35:56 »

Hola, ranefi

Error no me da ninguno, solo que si edito el archivo de datos
veo que escribe bien (codigo de 4 bytes y nombre de 30 bytes por registro), pero cuando leo, me lee lo que quiere,pues en cada
lectura lee los 15 o 16 bytes del registro, despues otros 15 o 16
y asi interminableme nte y no entiendo por que hace eso
Gracias por responder
Si se te ocurre algo, te agradeceria me lo dijeses
Saludos

En línea
ranefi
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,194


SELECT * FROM guapos WHERE papito_chulo = 'ranefi'


Ver Perfil WWW
« Respuesta #3 : 11 de Febrero de 2006, 09:33:38 »

Oye peladete, sigo sin entenderte mucho, pero creo que aquí está el problema:

Código:

 FileOpen(1, "Estilos.DAT", OpenMode.Random, OpenAccess.Read, OpenShare.LockWrite, 34)
        Console.ReadLine()
        For i As Long = 1 To 15 '<-------     ¿Por qué no intentas darle unos 30 bytes? Digo 1 to 30
            FileGet(1, Estilo1.CodigoEstilo, i)
            'FileGet(1, Estilo1.NombreEstilo, i)
            Console.WriteLine(i & " " & " " & Estilo1.CodigoEstilo & " " & "*" & Estilo1.NombreEstilo & "*")
            Console.ReadLine()
        Next
        FileClose(1)


Espero y esto te sirva. Nos vemos pelao.
En línea


SELECT * FROM mejores_batos_ del_mundo WHERE id = (SELECT DISTINCT id_guapo FROM los_mas_guapos _del_mundo WHERE papito_chulo = 'ranefi')
javier234-
Recien llegado
*
Desconectado Desconectado

Mensajes: 5

Member, pOrtal HAcker


Ver Perfil
« Respuesta #4 : 11 de Febrero de 2006, 11:00:32 »

A ver tio,

El loop que hago de 1 a 15 es para leer los 15 primeros registros, no para
leer los 30 bytes del campo NombreEstilo
Saludos
En línea
ranefi
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,194


SELECT * FROM guapos WHERE papito_chulo = 'ranefi'


Ver Perfil WWW
« Respuesta #5 : 14 de Febrero de 2006, 10:06:07 »

    ¡Ups! Cierto sobrino, no me había dado cuenta, jejeje, a veces soy muy cabeza dura, jejejeje, bueno, oye,     ¿ya revisaste esto?

Código:

 If Estilo1.NombreEstilo <> "" Then
                If Estilo1.NombreEstilo.Length < 30 Then
                    For i As Integer = 1 To 30 - Estilo1.NombreEstilo.Length
                        Estilo1.NombreEstilo += " "
                    Next
                    Console.WriteLine("*" & Estilo1.NombreEstilo & "*")
                End If
                FilePut(1, Estilo1, j)
                Console.WriteLine("Se copio en el archivo el Estilo")
            Else
                Console.WriteLine("No se copio nada en el archico")
            End If


Me refiero a la siguiente línea: For i As Integer = 1 To 30 - Estilo1.Nombre Estilo.Length

Pero antes de llegar a conclusiones precipitadas, mi pregunta es la siguiente,     ¿por qué restas al valor que tenga i el valor de Estilo1.Nombre Estilo.Length? Y bueno, también tengo otra pregunta,     ¿para qué es exactamente este proceso? Nos vemos.

PD: No te desesperes, que aquí todos trateremos de encontrar una solución a tu problema.
En línea


SELECT * FROM mejores_batos_ del_mundo WHERE id = (SELECT DISTINCT id_guapo FROM los_mas_guapos _del_mundo WHERE papito_chulo = 'ranefi')
Páginas: [1] Ir Arriba Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC hacker

Juegos gratis - Articulos PHP - Juegos - Trucos - Letras - Juegos - Juegos Online