Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Añadir carácter según una posición x a un String (https://www.clubdelphi.com/foros/showthread.php?t=83785)

Ledian_Fdez 29-07-2013 21:49:50

Añadir carácter según una posición x a un String
 
Hola chicos intento hacer una funcion que me permita añadir un carácter según una posición x a un String


Query: Consulta que me devuelve cada cuanto caracteres debo poner un separador.
Resultado de la consulta:
Cita:

posición separador
3 -
3 -
5 -
6 -
11 -
Cadena: variable String que le inserto un separador según la posición.

Código Delphi [-]
function FormateaCadena(Query: TADOQuery, Cadena: String): String;
var
 Valor, Separador : String;
 i,j : integer;
begin
 Query.Open;
 Query.First;
 Separador := Query.Fields[1].AsString; // obtengo el caracter de separador
 for i:= 1 to Query.RecordCount do // ciclo para recorrer la tabla y saber cada cuantos caracteres va el separador
   begin
     for j:=1 to Query.Fields[0].AsInteger do // ciclo para ir armando la cadena con el separador
       begin
        Valor := Valor + Cadena[j]; 
       end;
     Query.Next;
     Valor := Valor + CadenaSeparador;
   end;
 Query.Close;
 Result := Valor;
end;

Al llamar la funcion

Código Delphi [-]
text := FormateaCadena(qryXXX, '10024888'); // text = 100-100-100-248-248- ...

Esta era mi idea pero la verdad no funciona pues el ciclo en j se me repite y pufff ... no logro hacerlo bien.

en espera de su ayuda
y mil grasias de antemano
lo salu2.

ecfisa 30-07-2013 03:00:13

Hola Ledian.

La verdad, o no entiendo el planteo, o los ejemplos que das no se condicen con los resultados. Tal vez si pudiesemos conocer la estructura del registro con los campos que trae la consulta y como deben considerarse los valores de posición obtenidos...

Del ejemplo:
Código Delphi [-]
text := FormateaCadena(qryXXX, '10024888'); // text = 100-100-100-248-248- ...
Pareciera que deben tomarse n caracteres y agregarlos n veces separados por el separador y valor obtenido de la consulta, pero sigo suponiendo...

Saludos. :)

Ledian_Fdez 01-08-2013 14:57:08

Crear Funcion insertar caracter
 
Chicos quizas me complique con la función y no supe explicarme. Se los voy a poner mas sencillo, digamos que quiero a una cadena de caracteres insertarle en la posicion x otro caracter.

Código Delphi [-]
Pos := 3;
Caracter := '-'
cadena := InsertaCaracter ('10024888', Pos, Caracter);
//cadena = 100-24888

Es algo como esto, sabiendo eso yo lo adapto a lo que quiero mas arriba.

gracias de antemano.

ecfisa 01-08-2013 16:22:21

Hola Ledian.

Código Delphi [-]
...
var
  str : string;
  ch  : char;
  posi: Integer;
begin
  str  := '10024888';
  ch   := '-';
  posi := 4; // 3+1 (entre 0 y 2)
  Insert(ch, str, posi);
  ...

Saludos :)


La franja horaria es GMT +2. Ahora son las 17:28:14.

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