Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: FaiF (A¥åHøRå) en 25 Mayo 2008, 17:08 PM

Título: Simbolos raros al escribir en un TXT
Publicado por: FaiF (A¥åHøRå) en 25 Mayo 2008, 17:08 PM
Hola,

Estoy creando un simple programa en VB.
El caso es que voy a grabar unos datos en un TXT pero no se porqué al grabarse me quedan unos símbolos extraños delante de cada línea... le he dado mil vueltas y no se por qué pasa.

El código que he escrito es este:

Código (vb) [Seleccionar]
Dim archivo3 As Long
archivo3 = FreeFile
Open App.Path & "\amigos.txt" For Binary As #archivo3
Put archivo3, , userid1 & "|" & nombre1
Put archivo3, , vbCrLf
Put archivo3, , userid2 & "|" & nombre2
Put archivo3, , vbCrLf
Put archivo3, , userid3 & "|" & nombre3
Put archivo3, , vbCrLf
Put archivo3, , userid4 & "|" & nombre4
Put archivo3, , vbCrLf
Put archivo3, , userid5 & "|" & nombre5
Put archivo3, , vbCrLf
Close #archivo3


Y el archivo resultante queda así:
Citar  59805153|hahshs sjsjs
  59636787|jsjs jsjsj
  59665553|jsjsjs kflfkf
  59705016|oekeoe jdkd
60005630|Jaime jidixkx

Además es rarísimo que en la última línea no pase.

¿Qué es lo que estoy haciendo mal?

salu2  ;)
Título: Re: Simbolos raros al escribir en un TXT
Publicado por: Kizar en 25 Mayo 2008, 17:19 PM
el problema esta en los userid1, intenta limpiarles con un trim o algo asi...
Título: Re: Simbolos raros al escribir en un TXT
Publicado por: FaiF (A¥åHøRå) en 25 Mayo 2008, 17:25 PM
He probado con los Trim y también he probado a solo guardar los "nombre*" y sigue ocurriendo lo mismo.

Por si sirve de algo todas las variables son strings:

Código (vb) [Seleccionar]
Dim userid1, userid2, userid3, userid4, userid5 As String
Dim nombre1, nombre2, nombre3, nombre4, nombre5 As String


salu2  ;)
Título: Re: Simbolos raros al escribir en un TXT
Publicado por: cassiani en 25 Mayo 2008, 17:31 PM
Todas las variables No son string, solo las que terminan en 5, las demás son variant.  :-\

He hay el detalle!!!
Título: Re: Simbolos raros al escribir en un TXT
Publicado por: cobein en 25 Mayo 2008, 17:33 PM
cΔssiΔnі me ganaste de mano! =]

Ejemplo practico

Private Sub Form_Load()
    Dim userid1, userid2, userid3, userid4, userid5 As String

    Debug.Print VarType(userid1), VarType(userid5)
End Sub
Título: Re: Simbolos raros al escribir en un TXT
Publicado por: Kizar en 25 Mayo 2008, 17:33 PM
ahi esta el tema, solo es string la ultima.
Dim userid1 As String, userid2 As String, userid3 As String, userid4 As String, userid5 As String
Título: Re: Simbolos raros al escribir en un TXT
Publicado por: FaiF (A¥åHøRå) en 25 Mayo 2008, 17:36 PM
Joder que error más tonto... pense que así se declaraban todas como string...  :¬¬

gracias!  ;)
Título: Re: Simbolos raros al escribir en un TXT
Publicado por: FaiF (A¥åHøRå) en 25 Mayo 2008, 17:50 PM
Lo de la declaracion de variables ya está arreglado... pero siguen saliendo los malditos cuadrados esos!!
Título: Re: Simbolos raros al escribir en un TXT
Publicado por: naderST en 25 Mayo 2008, 18:35 PM
Mira yo probe asi y me funciono, prueba abriendo el archivo con otro modo como OutPut


Option Explicit

Private Sub Form_Load()
Dim userid1 As String
Dim nombre1 As String
Dim archivo3 As Long

archivo3 = FreeFile
userid1 = "1"
nombre1 = "naderST"

Open "C:\amigos.txt" For Output As #archivo3
    Print #archivo3, userid1 & "|" & nombre1
Close #archivo3
End Sub
Título: Re: Simbolos raros al escribir en un TXT
Publicado por: cassiani en 25 Mayo 2008, 18:46 PM
Cita de: A¥åHøRå en 25 Mayo 2008, 17:50 PM
Lo de la declaracion de variables ya está arreglado... pero siguen saliendo los malditos cuadrados esos!!

Yo lo probé de las dos formas, con la declaración mal echa y con lo contrario, obviamente con la mal elaborada salen los símbolos que dices, pero con las declaraciones como deben ser todo va perfecto, independientemente de si lo abres en modo binario o output o cualquier otro. Creo que hay alguna cosa que debes estar haciendo mal, porque sino no entiendo. Quizás si posteas el code completo tal y como lo tienes, nos des otra perspectiva.

Reitero: a mi me funciona perfecto!!!

Título: Re: Simbolos raros al escribir en un TXT
Publicado por: FaiF (A¥åHøRå) en 25 Mayo 2008, 19:29 PM
Cita de: naderST en 25 Mayo 2008, 18:35 PM
Mira yo probe asi y me funciono, prueba abriendo el archivo con otro modo como OutPut

Al ponerlo sustituir Print por Put ya no me aparecen esos simbolos extraños. Gracias

CitarQuizás si posteas el code completo tal y como lo tienes, nos des otra perspectiva.
Es todo un jaleo porque de tantas pruebas que he hecho esta ilegible el código. Lo que hace es buscar unas cadenas de texto en un archivo y guardarlas en otro:

Código (vb) [Seleccionar]
Dim hfile%
Dim amis1 As String
hfile = FreeFile
Open App.Path & "\bamigos.htm" For Input As #hfile
amis1 = Input(LOF(hfile), #hfile)
Close hfile

posnamigos = InStr(1, amis1, "1-5 de ", vbTextCompare)
namigos = Replace(Replace(Mid(amis1, (posnamigos + 7), 3), ">", ""), " ", "")

'NÚMERO DE AMIGOS EN TOTAL EN namigos

Dim npaginas As Integer
npaginas = namigos / 5
Debug.Print npaginas

Dim posamigo1 As String, posamigos2 As String, posamigo3 As String, posamigo4 As String, posamigo5 As String
Dim userid1 As String, userid2 As String, userid3 As String, userid4 As String, userid5 As String
Dim nombre1 As String, nombre2 As String, nombre3 As String, nombre4 As String, nombre5 As String

posamigo1 = InStr(1, amis1, "user_id", vbTextCompare)
userid1 = Mid(amis1, (posamigo1 + 8), 8)
nombre1 = Replace(Mid(amis1, (posamigo1 + 8 + 8 + 18), 15), ">", "")

posamigo2 = InStr((posamigo1 + 8), amis1, "user_id=", vbTextCompare)
posamigo2 = InStr((posamigo2 + 8), amis1, "user_id=", vbTextCompare)
userid2 = Replace(Replace(Mid(amis1, (posamigo2 + 8), 8), ">", ""), " ", "")
nombre2 = Replace(Mid(amis1, (posamigo2 + 8 + 8 + 18), 15), ">", "")

posamigo3 = InStr((posamigo2 + 8), amis1, "user_id=", vbTextCompare)
posamigo3 = InStr((posamigo3 + 8), amis1, "user_id=", vbTextCompare)
userid3 = Replace(Replace(Mid(amis1, (posamigo3 + 8), 8), ">", ""), " ", "")
nombre3 = Replace(Mid(amis1, (posamigo3 + 8 + 8 + 18), 15), ">", "")

posamigo4 = InStr((posamigo3 + 8), amis1, "user_id=", vbTextCompare)
posamigo4 = InStr((posamigo4 + 8), amis1, "user_id=", vbTextCompare)
userid4 = Replace(Replace(Mid(amis1, (posamigo4 + 8), 8), ">", ""), " ", "")
nombre4 = Replace(Mid(amis1, (posamigo4 + 8 + 8 + 18), 15), ">", "")

posamigo5 = InStr((posamigo4 + 8), amis1, "user_id=", vbTextCompare)
posamigo5 = InStr((posamigo5 + 8), amis1, "user_id=", vbTextCompare)
userid5 = Replace(Replace(Mid(amis1, (posamigo5 + 8), 8), ">", ""), " ", "")
nombre5 = Replace(Mid(amis1, (posamigo5 + 8 + 8 + 18), 15), ">", "")

Dim archivo3 As Long
archivo3 = FreeFile
Open App.Path & "\amigos.txt" For Binary As #archivo3
Put archivo3, , userid1 & "|" & nombre1
Put archivo3, , vbCrLf
Put archivo3, , userid2 & "|" & nombre2
Put archivo3, , vbCrLf
Put archivo3, , userid3 & "|" & nombre3
Put archivo3, , vbCrLf
Put archivo3, , userid4 & "|" & nombre4
Put archivo3, , vbCrLf
Put archivo3, , userid5 & "|" & nombre5
Put archivo3, , vbCrLf
Close #archivo3



salu2  ;)
Título: Re: Simbolos raros al escribir en un TXT
Publicado por: Sai-To en 25 Mayo 2008, 19:38 PM
este problema es raro y no se sabe porque ocurre aveces :-\ a skullmaster123 tambien le pasa lo mismo y no ha logrado todavia arreglarlo!  :-\ pues segun el
Título: Re: Simbolos raros al escribir en un TXT
Publicado por: naderST en 26 Mayo 2008, 02:56 AM
Cita de: A¥åHøRå en 25 Mayo 2008, 19:29 PM
Cita de: naderST en 25 Mayo 2008, 18:35 PM
Mira yo probe asi y me funciono, prueba abriendo el archivo con otro modo como OutPut

Al ponerlo sustituir Print por Put ya no me aparecen esos simbolos extraños. Gracias

CitarQuizás si posteas el code completo tal y como lo tienes, nos des otra perspectiva.
Es todo un jaleo porque de tantas pruebas que he hecho esta ilegible el código. Lo que hace es buscar unas cadenas de texto en un archivo y guardarlas en otro:

Código (vb) [Seleccionar]
Dim hfile%
Dim amis1 As String
hfile = FreeFile
Open App.Path & "\bamigos.htm" For Input As #hfile
amis1 = Input(LOF(hfile), #hfile)
Close hfile

posnamigos = InStr(1, amis1, "1-5 de ", vbTextCompare)
namigos = Replace(Replace(Mid(amis1, (posnamigos + 7), 3), ">", ""), " ", "")

'NÚMERO DE AMIGOS EN TOTAL EN namigos

Dim npaginas As Integer
npaginas = namigos / 5
Debug.Print npaginas

Dim posamigo1 As String, posamigos2 As String, posamigo3 As String, posamigo4 As String, posamigo5 As String
Dim userid1 As String, userid2 As String, userid3 As String, userid4 As String, userid5 As String
Dim nombre1 As String, nombre2 As String, nombre3 As String, nombre4 As String, nombre5 As String

posamigo1 = InStr(1, amis1, "user_id", vbTextCompare)
userid1 = Mid(amis1, (posamigo1 + 8), 8)
nombre1 = Replace(Mid(amis1, (posamigo1 + 8 + 8 + 18), 15), ">", "")

posamigo2 = InStr((posamigo1 + 8), amis1, "user_id=", vbTextCompare)
posamigo2 = InStr((posamigo2 + 8), amis1, "user_id=", vbTextCompare)
userid2 = Replace(Replace(Mid(amis1, (posamigo2 + 8), 8), ">", ""), " ", "")
nombre2 = Replace(Mid(amis1, (posamigo2 + 8 + 8 + 18), 15), ">", "")

posamigo3 = InStr((posamigo2 + 8), amis1, "user_id=", vbTextCompare)
posamigo3 = InStr((posamigo3 + 8), amis1, "user_id=", vbTextCompare)
userid3 = Replace(Replace(Mid(amis1, (posamigo3 + 8), 8), ">", ""), " ", "")
nombre3 = Replace(Mid(amis1, (posamigo3 + 8 + 8 + 18), 15), ">", "")

posamigo4 = InStr((posamigo3 + 8), amis1, "user_id=", vbTextCompare)
posamigo4 = InStr((posamigo4 + 8), amis1, "user_id=", vbTextCompare)
userid4 = Replace(Replace(Mid(amis1, (posamigo4 + 8), 8), ">", ""), " ", "")
nombre4 = Replace(Mid(amis1, (posamigo4 + 8 + 8 + 18), 15), ">", "")

posamigo5 = InStr((posamigo4 + 8), amis1, "user_id=", vbTextCompare)
posamigo5 = InStr((posamigo5 + 8), amis1, "user_id=", vbTextCompare)
userid5 = Replace(Replace(Mid(amis1, (posamigo5 + 8), 8), ">", ""), " ", "")
nombre5 = Replace(Mid(amis1, (posamigo5 + 8 + 8 + 18), 15), ">", "")

Dim archivo3 As Long
archivo3 = FreeFile
Open App.Path & "\amigos.txt" For Binary As #archivo3
Put archivo3, , userid1 & "|" & nombre1
Put archivo3, , vbCrLf
Put archivo3, , userid2 & "|" & nombre2
Put archivo3, , vbCrLf
Put archivo3, , userid3 & "|" & nombre3
Put archivo3, , vbCrLf
Put archivo3, , userid4 & "|" & nombre4
Put archivo3, , vbCrLf
Put archivo3, , userid5 & "|" & nombre5
Put archivo3, , vbCrLf
Close #archivo3



salu2  ;)

Entonces resolvistes cambiando el metodo por OutPut y usando Print?