Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Leer 4 Lineas de dos Archivo .txt (https://www.clubdelphi.com/foros/showthread.php?t=80070)

wcbs 01-09-2012 21:53:20

Leer 4 Lineas de dos Archivo .txt
 
Hola a los miembros de este foro

soy nuevo por acá y también en el mundo de delphi, yo estoy tratando de hacer una aplicación que al
Presionar la tecla F6 del teclado me cargue la aplicación y me leea 4 lineas de dos archivo de texto.txt,
pero con los ejemplos que e encontrado, solo puedo leer una linea pero no e podido lograr que me muestre
la información de las demás, los dos archivos de texto lo que tienen son números y quiero que al ejecutar
la aplicación me muestro los números que están en la linea que son la tercera y quinta linea de cada archivo,
me gustaria si es posible que me dieran una mano para hacer esta aplicacion.

de antemano les doy las gracias....

Casimiro Notevi 01-09-2012 22:03:35

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)


¿Y tu código?, deja que lo veamos para ayudarte, que no somos adivinos ;)

wcbs 01-09-2012 23:06:37

Gracias Casimiro Notevi
por tu pronta repuesta y también por darme la bienvenida al foro, te comento que ya e logrado ver dos de las lineas
pero sigo haciendo pruebas, me falta ver como hago para llamar el otro archivo y presentarlo en dos Tedit mas,

esto es lo que llevo asta ahora....
-----------------------------------------

Código Delphi [-]
unit Metros; 
 
interface 
 
uses 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, StdCtrls; 
 
type 
  TForm1 = class(TForm) 
    Label1: TLabel; 
    Edit1: TEdit; 
    Button1: TButton; 
    Edit2: TEdit; 
    Label2: TLabel; 
    Button2: TButton; 
    Label3: TLabel; 
    procedure Button1Click(Sender: TObject); 
    procedure Button2Click(Sender: TObject); 
  private 
    { Private declarations } 
  public 
    { Public declarations } 
  end; 
 
var 
  Form1: TForm1; 
  Datos: TextFile; 
  TS: TStrings; 
  TSA: TStrings; 
  Linea: String; 
  NumLinea: integer; 
 
implementation 
 
{$R *.dfm} 
 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
AssignFile(Datos,'C:\Games\BOOKS\C2006.DAT'); 
   Reset(Datos); 
   NumLinea := 0; 
   REPEAT 
 
        TS:= TStringList.Create; 
        Readln(Datos, Linea); 
        Inc(NumLinea); 
        UNTIL NumLinea = 4; 
        TS.Clear; 
        ExtractStrings(['|'], [], PChar(Linea), TS); 
        Edit1.Text:= TS.Text; 
   REPEAT 
        TSA:= TStringList.Create; 
        Readln(Datos, Linea); 
        Inc(NumLinea); 
        UNTIL NumLinea = 5; 
        TSA.Clear; 
        ExtractStrings(['|'], [], PChar(Linea), TSA); 
        Edit2.Text:= TSA.Text; 
 
      CloseFile(Datos); 
 
   end; 
    procedure TForm1.Button2Click(Sender: TObject); 
begin 
close; 
end; 
 
end.
--------------------------------------------------------------
todavía en este no tengo agregado la forma de ejecutar al presionar la tecla F6 del teclado, porque voy probando
en otro archivo y lo que me sale bien lo paso a este, como veras es cosa de principiante, pero con animo de ir
aprendiendo

Gracias...de nuevo y me dirás como mas ir adelantado

Casimiro Notevi 01-09-2012 23:09:59

No he entendido exactamente lo que quieres hacer.

wcbs 01-09-2012 23:39:44

Ok...Casimiro Notevi

Yo tengo dos archivos de datos que también son de texto, en la cuarta linea y quinta linea, tienen numero
yo quiero que al ejecutar la aplicación que estoy haciendo, me lea las lineas de los dos archivos y me muestre los números
que hay en esas lineas, ahora bien, ya e logrado ver de un archivo la 4 y 5 linea, pero no se como cargar el otro
archivo para en dos campos mas me muestre también la linea 4 y 5 de ese otro archivo,

la otra parte es hacer que cuando yo presione la tecla F6 se cargue esta aplicación y me muestre la información,
osea los números que hay en esas lineas.

no se si no me comprenderás mejor.

y Gracias de nuevo ya que me sorprende lo rápido que responde e intenta ayudarme también....

Casimiro Notevi 02-09-2012 00:40:44

O sea, tienes 2 ficheros de texto iguales, y cada uno de ellos tienen las líneas 4 y 5 (que tienen números), pueden ser así:
Código:

bla, bla, bla, bla,
bla, bla, bla, bla,
bla, bla, bla, bla,
1,2,3,4,5,
6,7,8,9,0

Ambos son de ese tipo, ¿es así?

wcbs 02-09-2012 01:38:46

Ok..
mas o menos es la idea, pero mira en esta forma tienen cada archivos los números,
------------------------------------------
1.000000
0.000000
12
1020.000000 <------- Esta es una de la linea
393.701508 <-------- Esta es la otra a mostrar
1456
0
0.000000
0.000000
0
401.700012
363.350006
92
0
0.000000
0.000000
0
72.699997
56.099998
44
----------------------------------------
La cuarta y quinta linea son las que quiero que me muestre el programa, por ejemplo, un archivo se llama C2006.DAT y el Otro CR.DAT ambos aunque son .dat son de texto, en cada uno los números varían pero tiene las lineas iguales, como te explico mas arriba ya puedo leer un archive, pero quiero leer los dos archivos en 4 campos del del programa....

ecfisa 02-09-2012 01:57:51

Cita:

Empezado por wcbs (Mensaje 441508)
La cuarta y quinta linea son las que quiero que me muestre el programa

Hola wcbs.

Me parece que te estas complicando con algo que es muy simple.

Un ejemplo:
Código Delphi [-]
var
  linea4, linea5: string;
begin
  with TStringList.Create do
  try
    LoadFromFile('C:\RUTA\C2006.DAT');
    linea4 := Strings[3];
    Linea5 := Strings[4]; 
    // aquí ya tenes las lineas deseadas en las variables linea4 y linea5
  finally
    Free;
  end;
  ShowMessage(linea4+#10+linea5); // mostrarlas

Saludos. :)

wcbs 02-09-2012 03:02:45

Exelente amigo ecfisa Usted es un Master

por eso es que hay que preguntar, me lee bien el archivo, ahora debo hacer que me lea el otro archivo para mostrar
en la misma ventana las otras dos lineas, recuerda que son dos archivos que debo de leer, me imagino que debo declara
dos variable mas y cargar el segundo archivo...

esto fue lo que le estuve que agregar, para que me lo muestre asi, en ves de en un ShowMessage...

Edit1.Text:= Linea4;
Edit2.Text:= Linea5;
//ShowMessage(linea4+#10+linea5); // mostrarlas
......................................................................

Ahora bien...la otra pregunta, como hago para hacer que al presionar F6, me cargue la aplicación, yo e mirado estos comentarios que para ejecutar el archivo debe ser con esta instrucción

if GetAsyncKeyState( VK_F6 ) = -32767 then

WinExec(PChar('c:\Metros\metros.exe'),SW_SHOWNORMAL);

pero todavía no logro que me cargue la aplicación, me puedes indicar como hacerlo

Gracias....

Casimiro Notevi 02-09-2012 10:05:47

Recuerda poner los tags al código fuente, ejemplo:




Por cierto, echa un vistazo a nuestro repositorio, encontrarás varios gigas de información, entre ellos también libros de programación delphi.
Es que tus dudas son básicas, como si estuvieses preguntando cómo sumar 1 manzana y 2 manzanas. Y después preguntas cómo harías si en lugar de manzanas son plátanos :confused:

wcbs 02-09-2012 14:25:47

Gracias amigo Casimiro Notevi

es como les comentaba mas arriba, soy nuevo en esto de programación en delphi, mi poco conocimiento
de programación son pequeños ya que cuando llegue a hacer algún pequeñito programa había que crear
enormes archivos llenos de comando a diferencia de ahora que con pocas instrucciones se hacen mas cosas

también te agradezco la ayuda y pasare por los repositorios para seguir aprendiendo..


Gracias...

Casimiro Notevi 02-09-2012 14:46:09

Por supuesto, un libro ;)

Ya ecfisa te ha escrito el código que necesitas, para otro fichero de texto es sólo repetirlo.
En plan rápido:

Código Delphi [-]
var linea4, linea5,
    linea4b, linea5b: string; 
begin   
  with TStringList.Create do   
  try    
    LoadFromFile('C:\RUTA\C2006.DAT');  //  *********** un fichero     
    linea4 := Strings[3];     
    Linea5 := Strings[4];      // aquí ya tenes las lineas deseadas en las variables linea4 y linea5   
  finally     
    Free;   
  end;   
  ShowMessage(linea4+#10+linea5); // mostrarlas
 
  with TStringList.Create do   
  try     
    LoadFromFile('C:\RUTA\C2007.DAT');   //  *********** otro fichero     
    linea4b := Strings[3];     
    Linea5b := Strings[4];      // aquí ya tenes las lineas deseadas en las variables linea4 y linea5   
  finally     
    Free;   
  end;   
  ShowMessage(linea4b+#10+linea5b); // mostrarlas

  ShowMessage(linea4+#10+linea5+#10+linea4b+#10+linea5b); // mostrarlas todas ----
end;

Casimiro Notevi 02-09-2012 14:49:11

Y recuerda nuestra guía de estilo, gracias por tu colaboración :)

wcbs 05-09-2012 15:05:36

Hola Casimiro Notevi

Disculpa la que no halla respondido antes ya que estaba fuera de la ciudad. acabo de probar estas instrucciones
y trabajan excelente, ahora seguiré haciendo la otra parte para poder terminal.

Mean sido de mucha ayuda, cualquier otra inquietud ya les comentare.

Muchas Gracias de Nuevo....


La franja horaria es GMT +2. Ahora son las 22:37:29.

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