Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Comas en un string (https://www.clubdelphi.com/foros/showthread.php?t=20126)

android_beat 06-04-2005 18:59:37

Comas en un string
 
:( quiero separar lo que hay entre las comas de un string ejemplo:

Tengo la variable Texto1:String;

Texto1:='rafael,23,1982';

lo que quiero es separar el nombre la edad y la fecha no puedo hacerlo con un copy() por que no siempre sera la misma longitud en el nombre como le puedo hacer?

les agradesco de ante mano porfa ayudenme :(

jachguate 06-04-2005 19:13:57

Claro que si podes hacerlo con copy. Para determinar dinámicamente la longitud a copiar, valete de la función pos.

Hasta luego.

;)

android_beat 06-04-2005 19:18:26

ejemplo
 
Ups creo que no entender no tendras un ejemplo siple para aplicarlo?
creo que me seria de mucha ayuda

jachguate 06-04-2005 19:21:48

Regularmente es tan fácil como ir a la ayuda de delphi. Este ejemplo está alli mismo:

Cita:

Empezado por Delphi Help
Código Delphi [-]
var S: string;

begin
  S := '   123.5';
  { Convert spaces to zeros }
  while Pos(' ', S) > 0 do
    S[Pos(' ', S)] := '0';
end;

Hasta luego.

;)

roman 06-04-2005 19:34:48

En algunos casos* puede usarse un TStringList:


Código Delphi [-]
var
  Campos: TStringList;

begin
  Campos := TStringList.Create;

  try
    Campos.CommaText := 'rafael,23,1982';

    {
       Ahora campos lista loe términos individuales:
         Campos[0] = 'rafael';
         Campos[1] = '23';
         Campos[2] = '1982';
    }
  finally
    Campos.Free;
  end;
end;

* Esto funciona bien si los términos entre las comas son palabras únicas, es decir sin espacios. Si hay espacios sería necesario que los términos estuvieran encerrados entre comillas dobles.

// Saludos

android_beat 06-04-2005 20:10:14

Juan Antonio Castillo Hernández grax me ayudo a solucionar un problemilla que tenia en otro caso


y Roman fue muy bueno eso ya que el string lo traia de una dll y solo puedo mandar ya sea un string o un integer desde la funcion


solo que no se por que en ocasiones la dll me marca este error EinvalidPointer

roman 06-04-2005 20:15:22

Cita:

Empezado por android_beat
solo que no se por que en ocasiones la dll me marca este error EinvalidPointer

No sé si sea el caso pero Delphi no maneja bien el paso de parámetros String en funciones de una DLL a no ser que se incluya la unidad ShareMem en la dll y en la aplicación. En su lugar puedes usar ShortString (máximo 255 caracteres).

// Saludos

jachguate 06-04-2005 20:18:38

Para completar lo dicho por román, y si la dll es tuya, podes evitar todo este rollo también pasando cadenas de caracteres terminadas en nulo al estilo de c (PChar).

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 04:28:30.

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