Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Como partir, modificar una variable.

Estas en el tema de Como partir, modificar una variable. en el foro de Visual Basic clásico en Foros del Web. Hola ! Buenos dias! Sabria alguien indicarme como puedo hacer para modificar parte de una variable, me explico, necesito modificar, eliminar la extension de un ...
  #1 (permalink)  
Antiguo 15/03/2010, 07:26
Avatar de XYON126  
Fecha de Ingreso: abril-2006
Mensajes: 272
Antigüedad: 18 años
Puntos: 0
Como partir, modificar una variable(Cerrado).

Hola !

Buenos dias!

Sabria alguien indicarme como puedo hacer para modificar parte de una variable, me explico, necesito modificar, eliminar la extension de un archivo para renombrar un nuevo archivo de extensión diferente con el mismo nombre, el problema es que se que con el "&" puedo añadir a una variable del tipo String mas texto ejemplo "pepito" & "juanito" y obtendria "pepitojuanito" el problema es que no creo que funcione lo contrario "pepitojuanito" - "juanito" y la solución fuese "pepito" . ¿Como podria hacerlo existe alguna sentencia o metodo? lo necesito en VB 6.0 y en VBScript.
Alguien podria ayudarme. . .


Muchas gracias por adelantado.

Última edición por XYON126; 23/03/2010 a las 02:18 Razón: Cerrado
  #2 (permalink)  
Antiguo 15/03/2010, 10:27
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Como partir, modificar una variable.

Para eso existen los comandos Len, Mid, Left y Right. Creo que deberías estudiar algún manual básico.

Fichero="C:\micarpeta\pepito.txt"
NuevoNombre=Left$(Fichero, Len(Fichero)-3) & "doc"
MsgBox NuevoNombre 'devuelve C:\micarpeta\pepito.doc

Si no conoces la longitud de la extension del fichero la cosa se complica un poco más.

Saludos
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #3 (permalink)  
Antiguo 15/03/2010, 13:31
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: Como partir, modificar una variable.

Como esta es una necesidad que me sucede muy a menudo, utilizo esta función que te devuelve el nombre del fichero sin su extensión, independientemente de la longitud de los caracteres.

Código:
Public Function SinExtension(Fichero As String) As String
  Dim Punto As Integer
  Punto = InStrRev(Fichero, ".")
  If Punto > 0 Then
    SinExtension = Left$(Fichero, Punto - 1)
  Else
    SinExtension = Fichero
  End If
End Function
Asi puedes por ejemplo hacer lo siguiente:

NuevoFichero = SinExtension(AntiguoFichero) & ".txt"
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #4 (permalink)  
Antiguo 15/03/2010, 14:54
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Como partir, modificar una variable.

Fíjate que yo suelo usar la función contraria:

Código vb:
Ver original
  1. Function MiraExtension(ByVal Fichero As String) As String
  2.   If InStrRev(Fichero, ".") Then
  3.     MiraExtension = UCase$(Right$(Fichero, Len(Fichero) - InStrRev(Fichero, ".")))
  4.   End If
  5. End Function
y el caso es que por no pararme a hacer una como la tuya suelo hacer algo como:

Fichero2=Left$(Fichero1,len(Fichero1)-Len(MiraExtension(Fichero1))) & "xxx"

y no creas que lo he hecho solo una vez...

Aprovecharé la ocasión y me guardaré tu función. (y me ha salido un pareado)

Saludos

PD: Por cierto, la variable Punto debería ser un Long.
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Última edición por pkj; 15/03/2010 a las 15:19
  #5 (permalink)  
Antiguo 15/03/2010, 15:30
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: Como partir, modificar una variable.

Hola de nuevo PKJ, me puedes aclarar porque Long nunca se me hubiera pasado por la cabeza que un Path de archivo pudiera tener mas de 32.767 caracteres
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #6 (permalink)  
Antiguo 15/03/2010, 19:32
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Como partir, modificar una variable.

Pues tienes razón, estimado compañero Erbuson. Debe ser ya la costumbre de esperar siempre lo más difícil, y como InStrRev devuelve un Long...

Saludos.
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #7 (permalink)  
Antiguo 16/03/2010, 01:34
Avatar de XYON126  
Fecha de Ingreso: abril-2006
Mensajes: 272
Antigüedad: 18 años
Puntos: 0
Respuesta: Como partir, modificar una variable.

Cita:
Iniciado por pkj Ver Mensaje
Para eso existen los comandos Len, Mid, Left y Right. Creo que deberías estudiar algún manual básico.

Fichero="C:\micarpeta\pepito.txt"
NuevoNombre=Left$(Fichero, Len(Fichero)-3) & "doc"
MsgBox NuevoNombre 'devuelve C:\micarpeta\pepito.doc

Si no conoces la longitud de la extension del fichero la cosa se complica un poco más.

Saludos
Gracias pkj!

La verdad es que esos comandos que comentas los he visto en muchos macros pero por desgracia en todos los manuales que tengo (Creo ya lo dije, soy muy novato) no tengo referencia de ellos, tendre que buscar en la ayuda del VBasic aunque probare tu secuencia.
Muchas gracias sin compas como vosotros los que nos iniciamos nos undiriamos en un plis plas.

Un saludote

Etiquetas: modificar, partir, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:41.