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 17-04-2011
ASAPLTDA ASAPLTDA is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA-CALI
Posts: 639
Poder: 21
ASAPLTDA Va por buen camino
Red face Copiado Datos de la Pantalla

buenas Tardes,
Estoy interesado en copiar datos (Texto) que se esta mostrando en la pantalla pero quiero seleccionar una parte de ellos no por reglon si no por una parte de ellos
Ejemplo
codigo cliente orden producto descripcion producto cantidad
-------- -------- ------ ---------- -------------- --------- ------------
0001 pedro 001 codigo1 descrip 1 aaa 10
002 juan 001 codigo 2 descripcion bbbb 15

Quisiera seleccionar la parte del codigo y la parte de la cantidad los otros campos no serian de interes, el formato cambia de posiciones dependiendo quien envia la informacion y a veces aunque la envie el mismo cambia.

Podrian darme alguna sugerencia? He visto algunos post pero se trata de graficas yo lo quiero de un texto

gracias
Responder Con Cita
  #2  
Antiguo 17-04-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola ASAPLTDA.

¿ Donde se está mostrando el texto, en qué componente ?
¿ Los datos tienen un tamaño fijo, algún separador o forma de identificarlos ?

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 18-04-2011
ASAPLTDA ASAPLTDA is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA-CALI
Posts: 639
Poder: 21
ASAPLTDA Va por buen camino
Ampliar Requerimiento

Cita:
Empezado por ecfisa Ver Mensaje
Hola ASAPLTDA.

¿ Donde se está mostrando el texto, en qué componente ?
¿ Los datos tienen un tamaño fijo, algún separador o forma de identificarlos ?
Gracias por tu atencion
Los datos son de longitud fija venir en un archivo de texto (.txt) o en un archivo de excel o copiados de una emulacion de un sistema as400 .

la idea seria copiar una fracion de los datos
si vienen 10 registros (10 Reglones) poder copia 10 reglones las posiciones 2 al 7 y de los mismos reglones las posiciones 10/16 , asi el operador evitaria copiar los datos.
Para el caso son remisiones que vienen de un documento impreso como archivo de texto, viene cabeceras, pies de pagina, detalles y comentarios las idea es copiar partes de los detalles. en mi caso son los codigos y las cantidades
Responder Con Cita
  #4  
Antiguo 18-04-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola ASAPLTDA.

Supongamos que el tamaño de la columna código es de 4 caracteres y el tamaño máximo que puede alcanzar la columna cantidad es de 6 caracteres.
Si se respeta el formato que pusiste en el primer post, sólamente tendrías que copiar los campos de aquellas líneas que empiezan con un dígito,
ya que las cabeceras empiezan por los caracteres 'c' y '-'.
Todo esto basándome en que los campos tienen una longitud fíja, que es el dato que no me especificas.

Te pongo un ejemplo que incluye un Memo (donde está el texto recibido) y dos ListBox donde se almacenan código y cantidad respectivamente:
Código Delphi [-]
uses StrUtils;
const
  NCODIGO  = 4;
  NCANTIDAD = 6;

procedure GetCodCant(Lineas,Cod,Cant: TStrings);
var
  i: Integer;
begin
  for i:= 0 to Lineas.Count -1 do
  begin
    if Lineas[i][1] in ['0'..'9'] then
    begin
      Cod.Add(Copy(Lineas[i],1,NCODIGO));
      Cant.Add(RightStr(Lineas[i],NCANTIDAD));
    end;
  end;
end;

Llamada:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  GetCodCant(Memo1.Lines, ListBox1.Items, ListBox2.Items);
end;


Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 18-04-2011 a las 19:07:55.
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
Procesar archivos inmediatamente despues de su copiado o transferencia. fredycc OOP 3 17-02-2009 20:30:53
Capturar Pantalla = Pantalla negra DarkDudae Gráficos 8 27-10-2008 12:29:36
como motrar una pantalla con datos joanajj Varios 6 21-04-2005 17:57:45
Capturar pantalla pablo Varios 1 07-09-2004 20:15:10
Copiado de Tablas Ulises Firebird e Interbase 4 27-02-2004 21:42:04


La franja horaria es GMT +2. Ahora son las 04:39:58.


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