hacker


Ingresar con nombre de usuario, contraseña y duración de la sesión
| Portal Hacker | Editorial | Descargas | Ezine |
Inicio Ayuda Ingresar Registrarse
12 de Octubre de 2008, 08:21:48
Noticias: La 1era E-Zine de CPH ya fue liberada, encuentrala
Para ver este enlace Registrate o Inicia Sesion
> aquí

+  Foros pOrtal Hacker
|-+  Programacion
| |-+  Programación en general
| | |-+  Visual Basic (Moderadores: ranefi, crypto136, ziBboh, >> s E t H <<)
| | | |-+  ayuda! leer letra a letra en un String!
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: ayuda! leer letra a letra en un String!  (Leído 217 veces)
700esoj
NZ2
**
Desconectado Desconectado

Mensajes: 172


Ver Perfil
« : 21 de Enero de 2008, 11:55:32 »

siempre e tenido ese tropeson, esa duda. Como pudiera hacer esto
Código:
dim chocha As String
dim m         As String


chocha = "abcdefghijklmnñopqrstuvwxyz"

print primera letra
print segunda letra
print tercera letra
print cuarta letra
y asi sucesivamente. No nesesariamente con print, sino q  como puedo acceder de letra a letra en una cadena y utilizarla para otra cosa. otro ejemplo:
Código:
m = segunda letra en la cadena chocha

hacer algo con esa letra

m = segunda letra en la cadena chocha y tercera letra

hacer algo con las letras
---------------------------------

O algo asi

m = Ultima letra
blabal
m = penultima letra
blablabal
m = letra a la mitad

DIm  r(24) AS String

r(1) = primera letra
r(2) = segunda letra
r(3) = tercera letra

etc.
como se puede hacer esto?

Y mi otra duda. imaginen q tengo un file con el siguiente contenido.

C:\txt.txt
--------------
Código:
' Este es un archivo de texto.

 Dim a As String
 echo off
 cualquier cosa
 mas lineas
 otra linea
 oye otra linea mas!
fin
------------------------------

Fin de txt.txt


ahora, si yo quiciera ir de linea por linea en ese archivo, como podria hacerlo?

osea con el comando open fsa for input as #1

si por ejemplo yo quiciera editar la tercera linea, donde dice
Código:
Dim a As String

si yo quiciera editar esa linea y reemplazarla con el comando replace "Dim" with "Global" in #1

como se haria? q funciones se necesitan para poder hacerlo?

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

esas siempre han sido mis preguntas y tropiesos a la hora de programar algo q quiero.


Código:

Open "C:\txt.txt" For Output As #1

     While NOT EOF(#1)     '< While Not End of file, Mientras no es Fin de archivo
       leer primera linea. sacarla a un msgbox
       leer segunda linea. sacarla a un msgbox
       leer tercera linea, replace "Dim" With "Global" in #1
       leer cuarta linea
       seguir leyendo hasta q acabe
    wend

Close #1
HuhHuhHuh?? alguien me prodria ayudar?
« Última modificación: 21 de Enero de 2008, 11:58:54 por 700esoj » En línea
k0be
NZ2
**
Desconectado Desconectado

Mensajes: 111


Ver Perfil
« Respuesta #1 : 21 de Enero de 2008, 04:40:39 »

Tus problemas son un poco especificos pero si entendi bien esto es lo que quieres mas o menos:


Situacion 1, programa que imprima letra por letra el contenido de un string:

Código:
cadena = "hola"

For contador = 1 To Len(cadena)
caracter = Mid(cadena, contador, 1)
MsgBox caracter
Next


Situacion 2, programa que permita modificar una palabra en una linea en particular de un archivo de texto.

Antes que nada debo decir que nunca habia intentado esto, y aunque llegue a una solucion que funcionaba no se si sea exactamente lo que buscas, ademas de que probablemente no sea una manera muy optima de hacer las cosas.

En un editor de textos normalmente volcarias todo el contenido del nuevo archivo reemplazando el anterior, evitando mayores complicaciones . De hecho un editor de texto probablemente tendria menos codigo y seria mas entendible que lo que ahorita voy a poner.

Código:
Dim Linea As String

    contador = 1
   
    Open "c:\prueba.html" For Input As #1
    Open "c:\prueba2.html" For Output As #2
   
    viejacadena = "parrafos"
    nuevacadena = "test"
    While Not EOF(1)
   
    Line Input #1, Linea
   
    If InStr(Linea, viejacadena) And contador = 3 Then
        Linea = Replace(Linea, viejacadena, nuevacadena)
    End If
   
    Print #2, Linea
   
    contador = contador + 1
   
    Wend
   
    Close #1
    Close #2

En este caso yo tenia un archivo .html donde en la linea 3 existia la palabra parrafos, y con este programa mande cambiar a ese programa por la palabra test.

Si quieres que el programa busque en todo el archivo y no solo en la linea 3 entonces borra donde dice AND contador = 3

El asunto aqui es que tuve que usar un archivo temporal para mis cambios, ya que si abres el archivo de texto en modo Input solo podras leer. En modo Output, borraras cualquier cosa que el archivo haya tenido previamente. Y en modo append la informacion se agregaria al final, que no es exactamente lo que queremos

Por esta razon lo que hago en mi programa es ir leyendo linea por linea, verificando si existe la cadena que busco y los resultados irlos guardando en un archivo nuevo. Si gustas y si te es necesario puedes borrar el archivo viejo y renombrar el nuevo al nombre que tenia el viejo, con esto simularas que los cambios fueron hechos directamente en el archivo original.

Código:
Kill "c:\prueba.html"
Name "c:\prueba2.html" As "c:\prueba.html"


Como dije, probablemente no sea la solucion mas optima ya que se desperdicia memoria volcando linea por linea en un archivo nuevo, aver si alguien tiene una mejor solucion que esta.


Otra opcion que pudieras considerar es simplemente llenar un textbox con el contenido de todo el archivo a editar, y hacer el cambio manualmente en el textbox (y agregas un boton para guardar los cambios). Algo asi como un mini editor de texto, que no es nada dificil.
En línea
>> s E t H <<
Moderador
*****
Desconectado Desconectado

Mensajes: 1,419


jelou guorld


Ver Perfil WWW
« Respuesta #2 : 22 de Enero de 2008, 11:09:28 »

podrias leerlo, dejarlo en memoria, cerrarlo y escribir en el mismo archivo

open por input
'lo metes en memoria
close
'blablabla
open fo output
print...
close
En línea


Para ver este enlace Registrate o Inicia Sesion
MI FIRMA Tongue



Para ver este enlace Registrate o Inicia Sesion
Indice de posts interesantes de VB... manuales, guias, dudas, etc


Para ver este enlace Registrate o Inicia Sesion
tenes ideas para el foro de VB? postealas aca


Para ver este enlace Registrate o Inicia Sesion
libreria de codigo en VB!


Para ver este enlace Registrate o Inicia Sesion
IDE's, compiladores, interpretes, etc!

*seth informa que quiere ver el foro de VX


Para ver este enlace Registrate o Inicia Sesion
¡ENTRA EN MI BLOG O TE JUANKEO!

k0be
NZ2
**
Desconectado Desconectado

Mensajes: 111


Ver Perfil
« Respuesta #3 : 23 de Enero de 2008, 05:54:22 »

podrias leerlo, dejarlo en memoria, cerrarlo y escribir en el mismo archivo

open por input
'lo metes en memoria
close
'blablabla
open fo output
print...
close

Eso no seria mejor que lo que yo hice. Guardar todo el contenido de un archivo en memoria seria un gran desperdicio de esta. Imaginate si estubieramos trabajando con archivos de 500 mb, 1 gb o 5gb....

Solo seria practico con archivos pequeños y en caso de que no tengamos acceso a borrar el archivo en cuestion con Kill.
En línea
Páginas: [1] Ir Arriba Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC hacker

Juegos gratis - Articulos PHP - Juegos - Trucos - Letras - Juegos - Juegos Online