Autor
|
Tema: como cargar 100 KBs en una variable; problema con InStr (Leído 3,048 veces)
|
drakolive
Desconectado
Mensajes: 141
|
Necesito cargar un texto de 100 KBs para analizarlo; y ahora el problema es que una variable no soporta tantos caracteres; que podria hacer? estuve probando a usar Texbox; pero tampoco pueden tener tantos caracteres;
son alrededor de 108 000 caracteres que necesito cargar a una variable, para poder trabajar....
EDITADO: resulta que la funcion InStr no permite encontrar coincidencias en un texto a mas de 22 000 caracteres... hice una prueba; en un texto coloque dos cadenas y luego las busque; y fui agregando texto poco a poco hasta poder hayar el limite; y me di con la sorpresa que solo puede hacer busquedas entre los 22 000 caracteres... ahora como podria solucionar eso? necesito hacer busquedas entre los 100 000 primeros caracteres...
Gracias que podria hacer?
|
|
« Última modificación: 29 Diciembre 2008, 18:15 pm por drakolive »
|
En línea
|
|
|
|
Dessa
Desconectado
Mensajes: 624
|
Option Explicit
Private Sub Form_Load()
Dim s As String Open App.Path & "\archivo.txt" For Input As #1 s = Input(LOF(1), #1) Close #1
MsgBox Len(s)
End Sub
http://rapidshare.com/files/177591168/Nueva_carpeta.zip
|
|
« Última modificación: 28 Diciembre 2008, 21:56 pm por Dessa »
|
En línea
|
Adrian Desanti
|
|
|
drakolive
Desconectado
Mensajes: 141
|
GRACIAS; eso ahora ya carga mi texto; ahora me ha surgido un problema. resulta que la funcion InStr no permite encontrar coincidencias en un texto a mas de 22 000 caracteres... hice una prueba; en un texto coloque dos cadenas y luego las busque; y fui agregando texto poco a poco hasta poder hayar el limite; y me di con la sorpresa que solo puede hacer busquedas entre los 22 000 caracteres... ahora como podria solucionar eso? necesito hacer busquedas entre los 100 000 primeros caracteres...
Gracias
|
|
|
En línea
|
|
|
|
Dessa
Desconectado
Mensajes: 624
|
No tengo ese problema con InStr , tal vez lo estes usando mal, pero tambien podes dividír la cadena en 5 subcadenas (s1 s2 s3 s4 s5) Option Explicit
Private Sub Form_Load()
Dim s As String Open App.Path & "\archivo.txt" For Input As #1 s = Input(LOF(1), #1) Close #1
MsgBox Len(s), , "Len(s)"
Dim s1 As String: s1 = Mid(s, 1, 20000) Dim s2 As String: s2 = Mid(s, 20001, 20000) Dim s3 As String: s3 = Mid(s, 40001, 20000) Dim s4 As String: s4 = Mid(s, 60001, 20000) Dim s5 As String: s5 = Mid(s, 80001, Len(s))
MsgBox Len(s1), , "s1" MsgBox Len(s2), , "s2" MsgBox Len(s3), , "s3" MsgBox Len(s4), , "s4" MsgBox Len(s5), , "s5"
' busco los ultimos 10 caracteres de s5 que son los 10 caracters finales del txt MsgBox Mid(s5, Len(s5) - 10, Len(s5)), , "Ultimos 10 bytes de s5 = Ultimos 10 bytes de archivo.txt"
' "s" sigue siendo la cadena entera MsgBox Len(s), , "la cadena s se mantiene intacta"
End
End Sub
(si no sale postea un ejemplo de como sería la búsqueda que tenes que hacer) Saludos
|
|
« Última modificación: 30 Diciembre 2008, 02:33 am por Dessa »
|
En línea
|
Adrian Desanti
|
|
|
vivachapas
Desconectado
Mensajes: 612
|
mira una vez necesitaba tb hacer busqueda de texto en un string... y no conocia la funcion instr... asi q esto fue lo q hice Dim TamTexto As Integer Dim Texto As String Dim Caracteres As Byte Dim Busca As String Private Sub Command1_Click() Texto = Text1.Text TamTexto = Len(Texto) Busca = Text2.Text Caracteres = Len(Busca) Dim i As Integer For i = 1 To TamTexto If Busca = Mid(Texto, i, Caracteres) Then Text1.SetFocus Text1.SelStart = i - 1 Text1.SelLength = Caracteres End If Next End Sub
fijate si te sirve... xq ahi trabajas con una string, y en esta si se pueden cargar esa cantidad de datos
|
|
|
En línea
|
|
|
|
Dessa
Desconectado
Mensajes: 624
|
InStr funciona Perfecto Option Explicit
Private Sub Form_Load()
Dim s As String
'creo un archivo de mas de 100 Kb Open App.Path & "\archivo.txt" For Output As #1 Dim i As Long: For i = 1 To 12500: Print #1, i: Next i Close #1
'Agrego al archivo la subcadena "XXXXX" al final este Open App.Path & "\archivo.txt" For Append As #1: Print #1, "XXXXX": Close #1
'Abro el archivo y lo pasa a la variable "s" Open App.Path & "\archivo.txt" For Input As #1: s = Input(LOF(1), #1): Close #1
MsgBox Len(s), , "La cadena S es mayor a 100 KB"
MsgBox InStr(1, s, "XXXXX"), , "InStr de XXXXX es mayor a 22000"
End
End Sub
Saludos
|
|
« Última modificación: 31 Diciembre 2008, 15:28 pm por Dessa »
|
En línea
|
Adrian Desanti
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[RETO] Alternativa a Instr()
« 1 2 3 4 5 »
Programación Visual Basic
|
Psyke1
|
45
|
18,743
|
16 Enero 2011, 20:57 pm
por Psyke1
|
|
|
cargar una imagen indicada en una variable ??
Desarrollo Web
|
skan
|
1
|
3,183
|
2 Noviembre 2011, 20:32 pm
por Roboto
|
|
|
Problema al ultilizar un txt como variable
Scripting
|
z3nth10n
|
7
|
3,221
|
10 Mayo 2012, 14:56 pm
por z3nth10n
|
|
|
cargar una variable en javascript
Scripting
|
superchorch
|
2
|
4,069
|
5 Julio 2012, 21:31 pm
por superchorch
|
|
|
cargar datos de php en variable javascript
Desarrollo Web
|
Zeroql
|
2
|
2,312
|
13 Diciembre 2016, 03:04 am
por [u]nsigned
|
|