Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-08-2003
adfa adfa is offline
Miembro
 
Registrado: may 2003
Ubicación: Montevideo-Uruguay
Posts: 119
Poder: 21
adfa Va por buen camino
problemas con format y array!!!

Hola a todos:
Deseo formatear un cadena pero añadiendole los parmametros desde codigo y no me a salido.
Estoy intentando hacer algo por el estilo y no me da resultado, como seria la manera correcta.

var
palabra : string;
valores : string;
i : integer
begin
for i := 0 to 100 do
begin
palabra := palabra + ' %s '; //agrego los %s para sustituir
valores := valores + listbox1.items[i]; //armo la cadena con los
if i < 100 then valores := valores + ','; //valores
end;
showmessage(format(palabra,[valores]));
end;

No se si me explique bien.
Espero que alguien me pueda ayudar.
Desde ya gracias.
Responder Con Cita
  #2  
Antiguo 23-08-2003
sanxpue sanxpue is offline
Miembro
 
Registrado: jul 2003
Posts: 196
Poder: 21
sanxpue Va por buen camino
Talking

Holas lo que pasa es que en tu codigo

Código:
  valores := valores + listbox1.items[i]; //armo la cadena con los 
  if i < 100 then valores := valores + ','; //valores

showmessage(format(palabra,[valores]));
Estas regresando en valores un String
y que te pide es un array de const

que no es lo mismo

'A','B','C',....'X' a 'A,B,C,D....,X'

hagamos una funcion que se llame

Código:
Function RegCadena(Palabra,Clave : String); String;
Var
  I : Integer;
  Ctemp : String;
Begin
  Result := '';
  While Pos('%s',Palabra) <> 0 Do
  Begin
     I := Pos('%s',Palabra);
     Delete(Palabra,I,2);
     CTem := Copy(Valores,1,Pos(',',Valores)-1);
     Delete(Valores,1,Pos(',',Valores));
     Insert(Ctem,Palabra,I);
  End;
  Result := Palabra;
End;

Ahora en tu codigo quedaria asi

var
  palabra : string;
  valores : String;
  i : integer;
begin
  //aqui te recomiendo que uses el listbox1.items.Count-1
  // por que sabras cuantos Items tiene tu listbox
  //por que si usas 100 puede ser que listbox1.items[100] no exista y te marque error
  for i := 0 to listbox1.items.Count-1 do 
  Begin
    palabra := palabra + '%s'; //agrego los %s para sustituir
    valores  := Valores + listbox1.items[i]+','; //armo la cadena con los
   End;
   showmessage(RegLaCadena(palabra,Valores));
  //format(palabra,[Valores])
end;
esperando que sea de tu utilidad
Saludos desde Puebla MExico
asanxt@hotmail.com
Responder Con Cita
  #3  
Antiguo 30-08-2003
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cool

pero si vas armando asi la cosa... no te daria lo mismo hacer:

Código:
Begin 
  s := 'La cadena ' + NombreCadena + 
         ' sera la misma, pero al Sr. ' + NombreProgramador + 
         ' le costara mucho menos entender este ' + NombrePrograma;
nooo????

hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
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


La franja horaria es GMT +2. Ahora son las 00:56:37.


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