Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 28-11-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 24
Caro Va por buen camino
Cita:
Empezado por Sr.Scorpion Ver Mensaje
Bueno aqui he hecho un procedimiento q se acerca bastante a lo q quiero, me imagino q se pueda simplificar y pulir un poco mas


Código Delphi [-]
function Buscar2(Cadena, formato: string): string;
var
I, J : Integer;
SubCad: string;
begin
J:=0;
for i:=1 to Length(cadena) do
begin
inc(J);
if formato[j] = '#' then
if cadena[i] in ['0'..'9'] then SubCad:= SubCad + cadena[i]
else
begin
SubCad:='';
J:=0;
end;
if formato[j] = '*' then
if cadena[i] in ['A'..'Z'] then SubCad:= SubCad + cadena[i]
else
begin
SubCad:='';
J:=0;
end;
if (formato[j] <> '#') and (formato[j] <> '*') then
if formato[j] = cadena [i] then SubCad:= SubCad + cadena[i]
else
begin
SubCad:='';
J:=0;
end;
if (j >= Length(formato)) and (cadena[i+1]=' ') Then break
end;
Result:=SubCad;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(Buscar2(Edit1.Text, '##:##**'));
end;


La cadena seria:
11/17/08 09:45AM 126 01 2079775103 00:08'33 3040

Por lo q mostraria 09:45AM

Saludos

Hola de nuevo, yo no lo haría así, funciona, pero talvez podría fallar en algunos casos, ademas si fuera así tendrías que aumentar mas y mas condiciones, en la función que te he mandado era solo aumentar dos lineas para cambiar las letras por el *, pero claro no funciona con subcadenas dentro cada palabra "##/##" y tu función tampoco funciona para ese caso.

Lo mejor es que uses el Pos para buscar subcadenas, como te ha indicado mayanes, corrigiendo algunos errores de su función y aumentando para que funcione con el *, quedaría así:

Código Delphi [-]
function SearchFor(const Str, SearchFormat: string): string;
var
  I: Integer;
  Temp: string;
begin
  Temp := Str;
  for I := 0 to Length(Temp) do
   begin
    if (Temp[i] in ['0'..'9']) then
      Temp := StringReplace(Temp, Temp[i], '#', [rfReplaceAll]);
    if (Temp[i] in ['A'..'Z']) then
      Temp := StringReplace(Temp, Temp[i], '*', [rfReplaceAll]);
   end;

  I := Pos(SearchFormat, Temp);
  if I > 0 then
    Result := Copy(Str, I, Length(SearchFormat))
  else
    Result := ''
end;
 
cadena := '11/12/08 09:45AM 126 01 2079775103 00:08''33 3040';
showmessage(SearchFor(cadena, '##:##**'));

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Buscar TAB en un string unreal4u Varios 4 13-07-2012 23:13:27
Buscar substring en string con IndexOf? Belaix Varios 3 12-11-2008 22:22:31
Buscar un string dentro de otro FunBit Varios 2 27-01-2006 14:45:16
Buscar String en AArchivo de texto!!! DB-ADO Varios 2 18-03-2005 16:02:32
Buscar palabra en una String diegofhernando Varios 10 23-05-2003 02:33:13


La franja horaria es GMT +2. Ahora son las 22:32:03.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi