Delphi - validar intervalo de impresion

 
Vista:

validar intervalo de impresion

Publicado por josete (3 intervenciones) el 30/01/2002 16:08:42
hay alguna forma facil de validar un intervalo de impresion,, por
ejemplo (1,2-5,6), eso es valido..
pero esto no lo es (1mm,3-2,1,3-5)
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

RE:validar intervalo de impresion

Publicado por Jesús (1 intervención) el 05/04/2006 09:57:10
Amigo, aqui tengo un código hecho por mi, espero te sirva, esta en VISUAL BASIC. Y no te preocupes por poner 2-6 o 6-2, ya que todos los programas aceptan eso... Saludos... Aquí mi código

Function ICorrecto(Intervalo As String) As Boolean
Dim T As Boolean
Dim L As Boolean, I As Integer, C As String
T = True
If Len(Trim(Intervalo)) = 0 Then T = False
If T Then
' Aquí se eliminan todos los espacios en blanco
L = False
Intervalo = Trim(Intervalo)
While Not L
L = True
For I = 1 To Len(Intervalo)
C = Mid(Intervalo, I, 1)
If C = " " Then
Intervalo = Mid(Intervalo, 1, I - 1) & Mid(Intervalo, I + 1, Len(Intervalo) - I)
L = False
Exit For
End If
Next I
Wend
'Aquí se eliminan los ceros a la izquierda
L = False
Intervalo = Trim(Intervalo)
While Not L
L = True
For I = 1 To Len(Intervalo)
C = Mid(Intervalo, I, 1)
If I = 1 Then
If C = "0" Then Intervalo = Mid(Intervalo, 2, Len(Intervalo) - 1)
Else
If C = "," Or C = "-" Then
If Mid(Intervalo, I + 1, 1) = "0" Then
Intervalo = Mid(Intervalo, 1, I) & Mid(Intervalo, I + 2, Len(Intervalo) - (I - 1))
L = False
Exit For
End If
End If
End If
Next I
Wend


End If
If T Then
'Aquí se revisa q la coma(,) no este en primera posición ni en última
'posicion. A la vez se verifica que a ambos lados de la coma hayan
'valores numéricos, igualmente se hace con el guión(-)

For I = 1 To Len(Intervalo)
C = Mid(Intervalo, I, 1)
If I = 1 And Not IsNumeric(C) Then
T = False
Exit For
End If
If I > 1 Then
If Not IsNumeric(C) And (C <> "," And C <> "-") Then
T = False
Exit For
End If
If C = "," And (Not IsNumeric(Mid(Intervalo, I - 1, 1)) Or Not IsNumeric(Mid(Intervalo, I + 1, 1))) Then
T = False
Exit For
End If
If C = "-" And (Not IsNumeric(Mid(Intervalo, I - 1, 1)) Or Not IsNumeric(Mid(Intervalo, I + 1, 1))) Then
T = False
Exit For
End If
End If
Next I
End If
'Aqui verificaremos que no se repitan las comas ni guiones
Dim Guion As Integer
Guion = 0
For I = 1 To Len(Intervalo)
If Mid(Intervalo, I, 1) = "-" Then
If Guion = 0 Then
Guion = 1
Else
T = False
Exit For
End If
End If
If Mid(Intervalo, I, 1) = "," Then
Guion = 0
End If

Next I
ICorrecto = T
End Function

Por: Jesús Ramón Cabrera Suárez
[email protected]
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