Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Crear fichero (https://www.clubdelphi.com/foros/showthread.php?t=52741)

angelp4492 29-01-2008 22:27:26

Crear fichero
 
Hola como estan;
Pues bien me surge una duda a la hora de crear y abrir un fichero a partir de datos que tenemos en un programa, en concrto pretendo hacer esto

1.-tengo un boton q al pulsar se abre el cuadro de dialogo de guardar esto es con svedialog
2.-en el nombre q lo pongamos al fichero quiero que se guarden los datos que tengo en tlabel y tedit que tengo en el programa, con la extension que le designemos.

3.-tengo otro boton de abrir fichero (opendialog) cuando carguemos el fichero los datos de este deben asignarse a los tlabel y tedit correspondientes segun grabados antes....
Alguna idea gracias..

cHackAll 29-01-2008 22:38:38

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var Archivo: TextFile;
begin
 if SaveDialog1.Execute then
  begin
   AssignFile(Archivo, SaveDialog1.FileName);
   {$i-} Rewrite(Archivo); {$i+}
   if LongBool(IOResult) then
    begin
     ShowMessage('Error de pacotilla :P'#13'No lo pude guardar pues...');
     Exit;
    end;
   WriteLn(Archivo, Label1.Caption);
   WriteLn(Archivo, Edit1.Caption);
   CloseFile(Archivo)
  end;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var Archivo: TextFile; Linea: string;
begin
 if OpenDialog1.Execute then
  begin
   AssignFile(Archivo, OpenDialog1.FileName);
   {$i-} Reset(Archivo); {$i+}
   if LongBool(IOResult) then
    begin
     ShowMessage('GRrrr');
     Exit;
    end;
   ReadLn(Archivo, Linea); Label1.Caption := Linea;
   ReadLn(Archivo, Linea); Edit1.Caption := Linea;
   CloseFile(Archivo)
  end;
end;

angelp4492 29-01-2008 23:01:58

Gracias funciona perfecto

angelp4492 30-01-2008 00:02:46

Me funciona to do perfecto chakall pero ahora tengo un problema, y es q tengo q mostrar datos en un combobox, los muestro con la propiedad itemindex, pero el problema esq en el combobox me aparece el dato pero no hace los calculos o sea que es como si lo tuviese a cero, q es el valor que le tengo puesto en el case of cuando el itemindex es -1 o sea que no esta selecionado.

ixMike 30-01-2008 00:09:08

Cita:

Empezado por angelp4492 (Mensaje 262036)
... tengo q mostrar datos en un combobox...
...no hace los calculos o sea que es como si lo tuviese a cero...
...en el case of cuando el itemindex es -1 o sea que no esta selecionado.

Lo siento, pero no se ha entendido nada. ¿Qué no está seleccionado? ¿Qué cálculos ha de hacer? ¿Qué es para ti "tenerlo a cero"?

Es más, ¿qué ComboBox?

Si esto no tiene nada que ver con la duda anterior, abre un nuevo post. Y, por favor, explícate de forma un poco más clara y ordenada.


Saludos.

angelp4492 30-01-2008 00:24:15

vale perdon

tengo esto en un combobox
procedure TForm1.ComboBox14Change(Sender: TObject);
begin
case combobox14.ItemIndex of
-1:begin psos:=0 end;//
0:begin psos:=8 end;//
1:begin psos:=8 end;
2:begin psos:=0 end;
end;
end;

y como bien me has dicho antes lo grabo en un fichero con

WriteLn(Archivo, combobox1.ItemIndex );

pues bien ahora cuando abro el fichero como tb me has dicho antes pongo.

ReadLn(Archivo, Linea); combobox1.ItemIndex := StrToInt(Linea);


y en el combobox se me selecciona el items que he guardado.
por ejemplo si seleccione en el combobox segundo que tiene itemindex(2).
cuando cargo el archivo se me selecciona segundo en el combobox hasta ahora bien.

pero luego tengo que multiplicar por ejemplo 5*valor del itemindex y me da cero. es como si no estuviera nada seleccionado y me coje el cero que es como el itemindex=-1 que es 0;

ixMike 30-01-2008 00:52:41

Cita:

Empezado por angelp4492 (Mensaje 262041)
vale perdon

Tranquilo, no pasa nada :)

Cita:

Empezado por angelp4492 (Mensaje 262041)
procedure TForm1.ComboBox14Change(Sender: TObject);
begin
case combobox14.ItemIndex of
-1:begin psos:=0 end;//
0:begin psos:=8 end;//
1:begin psos:=8 end;
2:begin psos:=0 end;
end;
end;

Procura utilizar las etiquetas DELPHI para encerrar el código, queda más elegante ;). Un consejo: si en las opciones de case sólo va una línea de código, no es necesario poner begin accion end;

Quedaría:

Código Delphi [-]
procedure TForm1.ComboBox14Change(Sender: TObject);
begin
case combobox14.ItemIndex of
   -1: psos:=0;
   0: psos:=8;  
   1: psos:=8;
   2: psos:=0;
  end;
end;


Cita:

Empezado por angelp4492 (Mensaje 262041)
y como bien me has dicho antes lo grabo en un fichero con

WriteLn(Archivo, combobox1.ItemIndex );

pues bien ahora cuando abro el fichero como tb me has dicho antes pongo.

ReadLn(Archivo, Linea); combobox1.ItemIndex := StrToInt(Linea);

Aquí está el problema. Al igual que al leer el dato haces la conversión StrToInt, al grabarlo tienes que hacer la conversión IntToStr:

Código Delphi [-]
WriteLn(Archivo, IntToStr(combobox1.ItemIndex) );


Creo que ya está :)


Salu2 ;)


La franja horaria es GMT +2. Ahora son las 01:57:19.

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