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: 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í: 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: 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
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
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. GraciasQuizá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: 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
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. GraciasQuizá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: 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?
|