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 17-03-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Arreglo bi-tri dimensional a partir de un String

Hola amigos

Pues bien, quiero hacer una funcion que me permita obtener a partir de un string un arreglo de enteros de esta forma:

'357,112' --> (357,112)
'672,464' --> (672,464)
'84,176,20' --> (84,176,20)
'89,176,20' --> (89,176,20)
'672,176,20' --> (672,176,20)

Lo que quiero hacer es tener una clase o una variable que pueda acceder de esta forma:

'357,112' --> (357,112) --> Dato1

Dato1.X, Dato1.Y

'672,176,20' --> (672,176,20) --> Dato2

Dato2.X, Dato2.Y, Dato2.Z

Espero haber sido lo suficientemente claro.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney

Última edición por egostar fecha: 17-03-2008 a las 20:30:07. Razón: Error en el titulo
Responder Con Cita
  #2  
Antiguo 17-03-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Creo que ni yo me entendi a lo que pregunte.....

Lo que necesito es pasar el dato String a una variable que sea un arreglo y que pueda acceder a los valores como si fueran coordenadas (X,Y)

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #3  
Antiguo 17-03-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
a ver si entendi:

Código Delphi [-]
unit Unit3;

interface

uses
   sysutils;

type
   TDato = Class(TObject)
      x: Integer;
      y: Integer;
      z: Integer;
      procedure Cargar(cValor: String);
   end;

implementation

procedure TDato.Cargar(cValor: String);
begin
   x := StrtoIntDef(Copy(cValor, 1, Pos(',', cValor) - 1));
   cValor := Copy(cValor, Pos(',', cValor) + 1, Length(cValor));
   y := StrtoIntDef(Copy(cValor, 1, Pos(',', cValor) - 1));
   cValor := Copy(cValor, Pos(',', cValor) + 1, Length(cValor));
   z := StrtoIntDef(Copy(cValor, 1, Length(cValor));
end;

end.
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #4  
Antiguo 17-03-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Código Delphi [-]
type
 TEgostar = class(TStringList)
 private
  function GetPoint(Index: Integer): TPoint;
  function GetLines(Index: Integer): Integer;
  function GetCaption(Index: Integer): string;
 protected
  property Point[Index: Integer]: TPoint read GetPoint;
  property Lines[Index: Integer]: Integer read GetLines;
  property Caption[Index: Integer]: string read GetCaption;
 end;
 
implementation

function TEgostar.GetPoint(Index: Integer): TPoint;
var S: string;
begin
 S := Copy(Strings[Index], Pos('=', Strings[Index]) + 1, 255);
 Result.X := StrToInt(Copy(S, 1, Pos(',', S) - 1));
 System.Delete(S, 1, Pos(',', S));
 if Pos(',', S) = 0 then
  Result.Y := StrToInt(S)
 else
  Result.Y := StrToInt(Copy(S, Pos(',', S) + 1, 255));
end;
 
function TEgostar.GetLines(Index: Integer): Integer;
var S: string;
begin
 S := Strings[Index];
 System.Delete(S, 1, Pos(',', S));
 if Pos(',', S) = 0 then
  Result := -1
 else
  Result := StrToInt(Copy(S, Pos(',', S) + 1, 255));
end;
 
function TEgostar.GetCaption(Index: Integer): string;
begin
 Result := Copy(Strings[Index], 1, Pos('=', Strings[Index]) - 1)
end;

Prueba;
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var e: TEgostar; i: Integer;
begin
 ListBox1.Clear;
 e := TEgostar.Create;
 e.LoadFromFile('xxx.txt');
 for i := 0 to e.Count - 1 do
  ListBox1.AddItem(e.Caption[i] + ' - ' + IntToStr(e.Point[i].X) + ':' + IntToStr(e.Point[i].Y) + ' (' + IntToStr(e.Lines[i]) + ')', nil);
 e.Destroy;
end;
Responder Con Cita
  #5  
Antiguo 17-03-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Muchas gracias amigos, ya estoy haciendo las pruebas, son geniales

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #6  
Antiguo 18-03-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
¡Hola Eliseo!

Gracias por el refresco del otro día en tu oficina.

Que bueno que ya hay varias buenas respuestas de los compañeros. Tengo curiosidad por conocer la razón de esto que buscas, para tener más claro el objetivo y, de ser posible, tratar de ayudar.

Saludos.

Al.
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
Fecha a partir de un string johurgi Varios 4 18-12-2007 13:03:48
Arreglo String Carliviris Varios 7 11-09-2006 23:26:26
Arreglo De Cadenas : String victor2023 OOP 6 19-05-2006 22:41:44
Partir un string FunBit Varios 5 25-07-2005 17:58:32
Como crear formas a partir de un string!! Alfonso Castill OOP 7 05-06-2004 05:03:22


La franja horaria es GMT +2. Ahora son las 09:26:16.


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