Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Visual Basic clásico (http://www.forosdelweb.com/f69/)
-   -   Archivos TXT leer para VB (http://www.forosdelweb.com/f69/archivos-txt-leer-para-vb-556656/)

zeroyevi 13/02/2008 15:10

Archivos TXT leer para VB
 
bueno estoy con dolor de cabeza

estoy haciendo un programa tipo HACHA al cual tengo que leer lineas y posicionarme ejemplo

txt los datos son

felipe 1000 C:/principal.txt " este contiene 6 lineas"
ana 5000
pedro estudiante
juan lagos
fernando yevi
juanito otro loco mas

a lo que necesito copiar de 2 en 2 y meterlas a otro txt distintos

felipe 1000 c:/ primer.txt
ana 5000

pedro estudiante c:/ segundo.txt
juan lagos

fernando yevi c:/tercer.txt
juanito otro loco mas

------------------------------------------------------------------------

se traer el dato a un textbox y leer el txt completo

Text2 = ""

Dim cont As Integer
Dim VarTexto As String

cont = 0
Open "c:/prueba.txt" For Input As #1
Do Until EOF(1)
Line Input #1, VarTexto
Text2 = Text2 & VarTexto & vbCrLf
cont = cont + 1
txtCont = cont
Loop
Close #1

----------------------------------------

puse un contador para saber cuantas lineas estoy leeyendo pero no se como posicionar me en una linea y leer desde un punto pofabor alguna ayuda :neurotico

Avellaneda 14/02/2008 04:20

Re: Archivos TXT leer para VB
 
Mira, marca la referencia "Microsoft Scripting Runtime" y pon este code

Código:

Dim FSO As New FileSystemObject
Dim TxS As TextStream, Fil As File
Dim a() As String, i As Integer, x As Integer

Set Fil = FSO.GetFile(App.Path & "\prueba.txt")
Set TxS = Fil.OpenAsTextStream(ForReading)
a() = Split(TxS.ReadAll, vbNewLine)
TxS.Close
x = 0
For i = LBound(a) To UBound(a)
    If x > UBound(a) Then Exit For
    Set TxS = FSO.CreateTextFile(App.Path & "\Prueba" & i & ".txt", True)
    TxS.WriteLine a(x)
    If x <> UBound(a) Then TxS.WriteLine a(x + 1)
    x = x + 2
Next i

¿Qué es lo que hace?
1º Abre el archivo "prueba.txt" que contiene todos los nombres
2º Lo lee y lo guarda en un array a()
3º Recorre cada uno de los elementos del array, crea un nuevo archivo y escribe en él los elementos de dos en dos

Nota: Si el archivo a crear ya existe, lo sobreescribe.


La condición "If x <> UBound(a) Then .." es por si en el archivo principal, las lineas fueran impares

Espero que se te pase el dolor de cabeza.

piojoman 14/02/2008 10:46

Re: Archivos TXT leer para VB
 
tambien puede ser asi:

Private Sub Form_Load()
Dim Dato As String, aux as byte, x as integer, VariableAux as string

aux = 1
For x = 1 To Len(Tex.Text)
Dato = Mid(Text1.Text, x, 1)
If (Asc(Dato) <= 26) Then 'le tire hasta el codigo 26 porque no estaba seguro, pero me parece que con 15 ya detecta el enter
If (aux = 4) Then
MsgBox VariableAux 'Aca tenes que reemplazarlo por el codigo de armar un txt aparte, no tenia ganas de hacerlo
aux = 1
VariableAux = ""
Else
aux = aux + 1
VariableAux = VariableAux + Dato
End If
Else
VariableAux = VariableAux + Dato
End If
Next
End Sub

zeroyevi 26/02/2008 15:03

Re: Archivos TXT leer para VB
 
bueno para aquellos que piensan que no termine el prograna les mando la respuesta

bueno lo hice con un Append y con un case asi solo indico mi contador cuanto va a lo que las lineas cuenta con append , imprimo o escribo en mi txt desde el punto ultimo de la ultima linea


Open txtORIGEN For Input As #1

Do Until EOF(1)
Line Input #1, VarTexto
memoria = VarTexto '& vbCrLf
cont = cont + 1
txtCont = cont

nfile = FreeFile
Open patch & rutaArchivo & " - " & conta & ".txt" For Append As #nfile
Print #nfile, memoria
Close #nfile


La zona horaria es GMT -6. Ahora son las 09:23.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.