Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-10-2007
samsagaz samsagaz is offline
Registrado
 
Registrado: oct 2007
Posts: 4
Poder: 0
samsagaz Va por buen camino
Necesito función para modificar carácteres.

Buenos, días, estoy necesitando una función o proceso para poder modificar un string.

Por ejemplo lo que estoy buscando sería.

Tengo el String "Auto" y tengo q volver a escribir el string utilizando todos los errores de tipeo, por ejemplo

quto
wuto
suto
xuto
zuto

ayto
ahto
ajto
akto
aito
a7to
a8to

o sea, las letras siguientes a la letra en cuestion (valga la redundancia)

Espero que alguien pueda ayudarme.

Gracias.
Responder Con Cita
  #2  
Antiguo 27-10-2007
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 24
BlueSteel Va por buen camino
Hola...

en realidad no se si esto te pueda servir.. la utilizo en Delphi 7

Código Delphi [-]
AnsiReplaceStr('Auxo''],'x','t')

lo que hace es reemplazar la x por la t dentro del string auxo

más bien.. creo que te puede servir una función como diccionario inteligente...tipo word...

si encuentras algo.. ponlo aca para echarle un vistazo suerte
__________________
BlueSteel
Responder Con Cita
  #3  
Antiguo 27-10-2007
samsagaz samsagaz is offline
Registrado
 
Registrado: oct 2007
Posts: 4
Poder: 0
samsagaz Va por buen camino
Un amigo me ha ayudado, les mustro el codigo, puede q alguien lo necesite

Código Delphi [-]
 
 
type
  TKeySet = Array[1..4] of Array[1..10] of Char;
  TForm1 = class(TForm)
    Edit1: TEdit;
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
  protected
    procedure FindWords(const Keys: TKeySet; AWord: String; Pos: Integer);
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FindWords(const Keys: TKeySet; AWord: string; Pos: Integer);
var
  i,j: Integer;
  x,y: Integer;
  NewWord: String;
begin
  { Por cada KeySet }
  for i := 1 to 4 do begin
    { Por cada caracter en KeySet }
    for j := 1 to Length(Keys[i]) do begin
      { Si el caracter iguala al de AWord[Pos] }
      if AWord[Pos] = Keys[i][j] then begin
        { Mirar un Keyset hacia arriba y uno hacia abajo }
        for x := i-1 to i+1 do begin
          { Y también un caracter a la izquierda y a la derecha }
          for y := j-1 to j+1 do begin
            { Si la posición es incorrecta, o igual a la del caracter actual o es un #0 en keyset -> saltaeralo }
            if (x < 1) or (x > 4) or (y < 1) or (y > 10) or (Keys[x][y] = #0) or ((x = i) and (y = j)) then
              Continue;
            { Sino, escribir la palabra alternativa }
            NewWord := AWord;
            NewWord[Pos] := Keys[x][y];
            Memo1.Lines.Add(NewWord);
          end;
        end;
        Exit;        
      end;
    end;
  end;
end;
procedure TForm1.Button1Click(Sender: TObject);
const
  { Caracteres #0 son saltados }
  Keys: TKeySet = (('1','2','3','4','5','6','7','8','9','0'),
                   ('q','w','e','r','t','y','u','i','o','p'),
                   ('a','s','d','f','g','h','j','k','l', #0),
                   ('z','x','c','v','b','n','m', #0, #0, #0));
var
  i,j: Integer;
  AChar: Char;
  AWordPtr: PChar;
  Ptr: PChar;
begin
  AWordPtr := PChar(LowerCase(Edit1.Text));
  try
    { Recorrer string por palabras }
    while AWordPtr <> nil do begin
      Ptr := StrScan(AWordPtr, ' ');
      if Ptr <> nil then
        Ptr^ := #0;
      { Recorrer cada letra de cada palabra }
      Memo1.Lines.Add('----- Alternativas de ' + AWordPtr + ' -----');
      for i := 1 to Length(AWordPtr) do begin
        if AWordPtr[i] = ' ' then
          Continue;
        { Buscar alternativas }
        FindWords(Keys,AWordPtr,i);
        Memo1.Lines.Add('');
      end;
      { Apuntar a la siguiente palabra en el string }
      if Ptr <> nil then begin
        Ptr^ := ' ';
        Inc (Ptr);
      end;
      AWordPtr := Ptr;
    end;
    { Hacer Scroll en el memo a la primera línea }
    Memo1.SelStart := 0;
    Memo1.SelLength := 1;
  finally
    Memo1.Lines.EndUpdate;
  end;
end;
end.

Gracias a Anibal por el código.

Última edición por samsagaz fecha: 27-10-2007 a las 02:06:23.
Responder Con Cita
  #4  
Antiguo 27-10-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Usa las etiquetas amigo samsagaz, [ delphi ] código y [ /delphi ] (sin espacios)... o lo marcas y le haces
Responder Con Cita
  #5  
Antiguo 27-10-2007
samsagaz samsagaz is offline
Registrado
 
Registrado: oct 2007
Posts: 4
Poder: 0
samsagaz Va por buen camino
Cita:
Empezado por cHackAll Ver Mensaje
Usa las etiquetas amigo samsagaz, [ delphi ] código y [ /delphi ] (sin espacios)... o lo marcas y le haces

gracias, ya lo he solucionado
Responder Con Cita
  #6  
Antiguo 27-10-2007
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Eso se llama reinventar la rueda, con la cantidad de funciones existentes y optimizadas q tiene Delphi en la unidad StrUtils, me vienen a la cabeza por lo menos StringReplace o StuffString
__________________
¿Microsoft? No, gracias..
Responder Con Cita
Respuesta



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
Necesito crear un permiso para escribir pero no para leer federiconqn21 Conexión con bases de datos 5 07-07-2006 19:13:47
Necesito un favor..Quien puede hacer una funcion para Base Firebird pani_alex Firebird e Interbase 8 12-04-2006 14:26:25
Necesito poder Ver/Modificar/Crear DSN en tiempo de ejecución mateamargo Conexión con bases de datos 0 23-01-2006 14:06:53
que necesito utilizar la funcion SQLConfigDataSource en mi proyecto Shidalis Providers 3 23-08-2005 18:11:15
necesito ayuda para hacer un sistema para un billar rober Varios 14 29-07-2004 01:08:02


La franja horaria es GMT +2. Ahora son las 07:56:18.


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