Ayuda con saltos de línea

Iniciado por TheH4ck, 28 Febrero 2015, 02:28 AM

0 Miembros y 1 Visitante están viendo este tema.

TheH4ck

Hola! Pues tengo el siguiente código:
Sub AbrirLista(List As ListBox, FileName As String)
Dim LineaTexto As String
Open FileName For Input As #1

While Not EOF(1)
Line Input #1, LineaTexto
List.AddItem LineaTexto, 0
Wend

Close #1
End Sub


Pero en el listbox me carga el archivo asi:

" PRUEBA PRUEBA PRUEBA "

Que en realidad debería ser así:
"Prueba
  Prueba
  Prueba"

Ayuda PLS!  :-\

Flamer

Código (vb) [Seleccionar]

Sub AbrirLista(List As ListBox, FileName As String)
Dim LineaTexto As String
Open FileName For Input As #1

While Not EOF(1)
Line Input #1, LineaTexto
List.AddItem LineaTexto & vbcrlf, 0
Wend

Close #1
End Sub


saludos Flamer y dime si te funciono

TheH4ck

No me anda , por que el txt que carga el listbox está en una página web , cuando vb6 descarga el archivo me los descarga con el formato "PRUEBAPRUEBAPRUEBAPRUEBAPRUEBA" , no hay alguna forma de descargar el archivo sin que lo descarge todo junto , el código para descargar que tengo es:

Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

Dim Reply As Long
Reply = URLDownloadToFile(0, "http://www.midominio.com/prueba/prueba2/list.txt", App.path & "\other\temp\terrain.dat", 0, 0)
If Reply = 0 Then
AbrirLista listact, App.path & "\other\temp\terrain.dat"
Else
MsgBox "Error: Compruebe su conexión a internet , vbCritical, "Error"
End If

Brian1511

Puedes yo uso esto en mis proyectos:
Pero separo los string con una coma o un guion

Si en el archivo esta "PRUEBAPRUEBAPRUEBA"
Cambialo por "PRUEBA-PRUEBA-PRUEBA" o "PRUEBA,PRUEBA"....

Código (vb) [Seleccionar]

Sub AbrirLista(List As ListBox, FileName As String)
Dim LineaTexto As String
Dim I as Integer
Dim Separador() as String
Open FileName For Input As #1

While Not EOF(1)
Line Input #1, LineaTexto
Separador = Split(LineaTexto,"-")
For I = 0 to UBound(Separador())
List.AddItem Separador(I), 0
Next I
Wend

Improvise un poco con el codigo de  Flamer espero que si funcione y que te sirva ;)

Close #1
End Sub



Creador de BrainMind

HdM

Hola.

Aprovechando un poco lo indicado por Flamer y Brian, esto debería funcionarte:

Código (vb) [Seleccionar]
Sub AbrirLista(FileName As String)
Dim LineaTexto As String
Dim I As Integer
Dim Separador() As String

Open FileName For Input As #1
Line Input #1, LineaTexto
Separador = Split(LineaTexto, vbLf)
For I = 0 To UBound(Separador)
      List.AddItem Separador(I)
Next I
Close #1

End Sub


Saludos.

- Nice to see you again -

Brian1511

Hola HdM mira creo que te confundiste aqui en la linea 8


CitarSeparador = Split(LineaTexto, vbLf)

No seria de esta forma?:

CitarSeparador = Split(LineaTexto, vbcrlf)




Creador de BrainMind

HdM

Hola.

No, no me confundí. Si las líneas en el txt hubiesen estado separadas por vbCrLf, entonces TheH4ck no habría creado este hilo, ya que habría importado el fichero sin problemas.

Saludos.

- Nice to see you again -

okik

#7
Hola
Lo que hay que hacer es primero cargar el texto en  una variable, tal cual  y luego mediante Split, se lee linea por linea. En lugar de leer linea por lína a medida que se leen los datos. Se meten tal cual en la variabla y luego ya se puede leer con Split sin problemas.


Código (vb) [Seleccionar]
Sub AbrirLista(List As ListBox, FileName As String)
Dim LineaTexto As String
Dim File As Integer
Dim Cont As Integer
Dim cDato As String
File = FreeFile

 'Abre el archivo
   Open FileName For Binary Access Read Write Lock Write As #File
   cDato = String(1, " ")
       While Not EOF(File)
           Get #File, , cDato
          LineaTexto = LineaTexto & cDato 'Carga el texto en una variable
       Wend
       Close #1
 'Lee linea por linea y las mete en el ListBox
Dim Lineas() As String
Dim i As Integer
Lineas = Split(LineaTexto, vbNewLine)
For i = LBound(Lineas) To UBound(Lineas)
If Lineas(i) > "" Then
   List1.AddItem Lineas(i)
End If
Next
End Sub