Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Varios
Register FAQ Members List Calendar Guía de estilo Today's Posts

Coloboración Paypal con ClubDelphi

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 05/11/2003
acrophet acrophet is offline
Miembro
 
Join Date: Sep 2003
Posts: 175
Poder: 23
acrophet Va por buen camino
meterle mano a un string

Hola, me gustaria saber si teniendo una variable string con un tamaño de caracteres predefinido puedo "meterle mano" y por ejemplo, si en la variable string hay dos palabras, pues coger cada palabra por separado y meterlas en otras nuevas variables.
No se si me he explicado bien, pero basicamente lo que quiero es que teniendo un string poder partirlo en 2, teniendon en cuenta que la estructura siempre sera la misma.
Un saludo.
Reply With Quote
  #2  
Old 05/11/2003
__hector's Avatar
[__hector] __hector is offline
Miembro Premium
 
Join Date: May 2003
Location: Santo Domingo, Rep. Dom.
Posts: 1,075
Poder: 25
__hector Va por buen camino
Mirate la funcion copy en la ayuda de delphi, que te permite obtener subcadenas de una cadena original, indicando desde que caracter quieres copiar, y cuantos caracteres copiar.
__________________
Héctor Geraldino
Software Engineer
Reply With Quote
  #3  
Old 05/11/2003
delphi.com.ar's Avatar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Join Date: May 2003
Location: Buenos Aires, Argentina *
Posts: 5,964
Poder: 29
delphi.com.ar Va camino a la fama
Te recomiendo buscar información sobre la clase TParser... por ejemplo: http://www.delphipages.com/tips/copyview.cfm?ID=123


Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Reply With Quote
  #4  
Old 05/11/2003
roman's Avatar
roman roman is offline
Moderador
 
Join Date: May 2003
Location: Ciudad de México
Posts: 20,269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Quote:
delphi.com.ar comentó:
Te recomiendo buscar información sobre la clase TParser... por ejemplo: http://www.delphipages.com/tips/copyview.cfm?ID=123
Saludos!
Como siempre, es grato comenzar el día aprendiendo algo nuevo. Hice una pequeña búsqueda en Google y me encontré este enlace:

http://www.rimrocksoftware.com/tparser.html

Entre otras cosas establece

Quote:
TParser cannot handle Pascal comments, so it cannot be considered a general purpose parsing class. It is intended to parse a correctly formatted textual form description.
¿Sabes de algún analizador de este tipo que sí maneje comentarios?

// Gracias
Reply With Quote
  #5  
Old 05/11/2003
delphi.com.ar's Avatar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Join Date: May 2003
Location: Buenos Aires, Argentina *
Posts: 5,964
Poder: 29
delphi.com.ar Va camino a la fama
Ahora que lo pienso... me parece que le sugerí matar una mosca con un misil, ademas le puede traer problemas... Con respecto a lo de los comentarios, no conozco si Delphi trae alguna herramienta con este propósito, pero se puede hacer un pequeño procedure con este propósito, ya quen hay que preocuparse por manejar los tipos de datos, comentarios...:
Code:
procedure ParseText(Text: PChar; const AResult: TStrings);
var
  L,
  E: PChar;
  R: string;
begin
  L := Text;
  E := StrEnd(Text);

  while Text < E do begin
    Inc(Text);
    if not (Text^ in ['A'..'Z', 'a'..'z', '_']) then
    begin
      if L <> Text Then
      begin
        SetString(R, L, Text-L);
        AResult.Add(R);
      end;
      L := Text + 1;
    end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ParseText('Delphi es una herramienta Formidable!',  Memo1.Lines);
end;
Aclaro que lo hice recién y no lo probé en profundidad!!!

Mi Procedure Original (Por si a alguien le gusta mas con strings):
Code:
procedure ParseText(AText: string; const AResult: TStrings);
var
  iLen,
  iLastPos,
  iPos: Integer;
begin
  iLastPos := 1;
  AResult.Clear;
  AText := AText + ' '; { Para evitar preguntar reiteradamente por iPos = iLen }
  iLen := Length(AText);
  for iPos := 1 to iLen do
    if not(AText[iPos] in ['A'..'Z', 'a'..'z', '_']) Then
    begin
      if (iPos <> iLastPos) Then
        AResult.Add(Copy(AText, iLastPos, iPos-iLastPos));

      iLastPos := iPos+1;
    end;
end;
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Reply With Quote
  #6  
Old 05/11/2003
Mick Mick is offline
Miembro
 
Join Date: May 2003
Posts: 405
Poder: 24
Mick Va por buen camino
Existe la posibilidad de usar la
propiedad CommaText del objeto TStrings, aunque tiene sus limitaciones (usa tanto el espacio como la coma para separar las palabras):

Code:
var
  i: integer;
  Palabras:TStringList;
begin

 Palabras:= TStringList.Create;
 try
   Palabras.CommaText:= 'esto es una prueba';

  for i:=0 to Palabras.count-1 do begin
     ShowMessage(Palabras[i]);
  end;  
 finally
   Palabras.Free;
 end;
O por ejemplo si queremos mostralas en un memo (o cualquier otro componente que almacene lineas):

Code:
Memo1.Lines.CommaText:= 'esto es una prueba';
Salud2 !!!
Reply With Quote
  #7  
Old 06/11/2003
acrophet acrophet is offline
Miembro
 
Join Date: Sep 2003
Posts: 175
Poder: 23
acrophet Va por buen camino
Al final he usado la funcioncita copy y funciona a las mil maravillas!!
Gracias a todos por la ayuda prestada.
Un saludo.
Reply With Quote
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT +2. The time now is 01:52.


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