Ruby - Comparación de Strings en Ruby.

 
Vista:

Comparación de Strings en Ruby.

Publicado por bigtio (1 intervención) el 09/02/2014 07:16:26
Buenas, estoy tratando de hacer una pequeña aplicación en lenguaje Ruby, esta aplicación lee un archivo txt y genera otro de salida, las dos cosas ya las hace perfectamente, el detalle viene a que dentro de las funciones de la aplicación es comparar si una variable String contiene otra como Substring.

Por ejemplo, la aplicación tiene que validar que la cadena "Prueba" este dentro de la cadena wRtPruebajnm, el problema es que no encuentro como hacerlo, ya intente con la instrucción include?, pero esta solo me funciona cuando comparo la variable directamente con algún string,

Este es mi código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# Abre y lee un fichero
# Se usa un bloque: el fichero se cierra
# automáticamente al acabar el bloque.
 
  linea1 = ''
  linea2 = ''
  linea3 = ''
  auxiliar = ''
  auxiliar2 = ''
  auxiliar3 = ''
 
puts "Leyendo Archivo..."
f = File.open('Archivo1.txt')
  entero = 0
    a = f.readlines
#Recorrer archivo y asignar variables
 
#Limpiar linea3
linea1 = a[1]
linea2 = a[2]
linea3 = a[3]
 
for i in(0..linea3.length)
    if(linea3[i,1] != auxiliar2)
	   auxiliar3 = auxiliar3 + linea3[i,1]
	   auxiliar2 = linea3[i,1]
	end
end
 
linea3 = auxiliar3
 
puts linea1
puts linea2
puts linea3
 
# Crea un nuevo fichero, y escribe
File.open('Salida1.txt', 'w') do |f2|
	  if linea3.include? linea1
	  f2.puts "SI"
	  else
	  f2.puts "NO"
	  end
 
	  if linea3.include? linea2
	  f2.puts "SI"
	  else
	  f2.puts "NO"
	  end
end
 
puts "Archivo de salida generado"

El problema esta en esta linea:

if linea3.include? linea1

Asumiendo que linea3 = wRtPruebajnm y linea1 = Prueba la instrucción me regresa falso, mientras que la siguiente instrucción me regresa verdadero:

if linea3.include? "Prueba"

Hay algún modo de utilizar algo similar al Contains() de C# en Ruby, una ayuda porfavor, tengo bastantes horas quebrandome la cabeza con esto.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Comparación de Strings en Ruby.

Publicado por Rojo (1 intervención) el 16/02/2014 08:18:51
1
2
3
4
linea3 = 'wRtPruebajnm'
linea1 = 'Prueba'
 
linea3.include? linea1 # => true

El código anterior retorna true. La falla debe estar en la lógica de tu programa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar