PDA

Ver la Versión Completa : Programa para reescribir un archivo


Yusk333
21-08-2007, 22:49:13
Hola a todos komo soy nuevo en eso de programacion les pido ayuda
nesesito un programa k rescriba en el archivo o lo cambie komo un tipo server k al momento de k se ejecute modifike el archivo k le dare en su ruta

ejemplo
c:\WINDOWS\SYSTEM32\ARCHIVO

y despues de eso me abra el iexplorer en la web deseada

espero sus opiniones y gracias de antemano

egostar
21-08-2007, 23:04:30
Hola a todos komo soy nuevo en eso de programacion les pido ayuda
nesesito un programa k rescriba en el archivo o lo cambie komo un tipo server k al momento de k se ejecute modifike el archivo k le dare en su ruta

ejemplo
c:\WINDOWS\SYSTEM32\ARCHIVO

y despues de eso me abra el iexplorer en la web deseada

espero sus opiniones y gracias de antemano

Hola Yusk333

Bienvenido al foro, te invito a que leas la guia de estilo (http://www.clubdelphi.com/foros/guiaestilo.php) del Club principalmente la clausula #3.

No entiendo nada de lo que dices, tomate un tiempo en ordenar tus ideas, escribe lo que quires hacer, no te limites en espacio, entre mas información des, será mucho mejor.

Ah y por favor escribe sin k's,

Salud OS

Yusk333
22-08-2007, 00:47:32
antes que nada perdon por las faltas :( ,,

mira si bien lo que quiero es un programar server que al momento que sea ejecutado sobreescriba en un archivo de la maquina supongamos que en la maquina existe el archivo test.txt , y se encuentra en la siguiente ruta

c:\windows\system32\test.txt

y el archivo contiene escritura , sea lo que sea ,,

entonces al momento de ejecutar ese server o programa se agregue un texto extra al archivo test.txt , o sea que sobreescriba o si bien lo cambie por uno del mismo nombre pero con el texto que le pida que se sobreescriba

ya sobreescribiendo el archivo , despues el server corra o abra otro programa como por ejemplo el iexplorer.exe

creo no estoy muy seguro para esa funcion se usa

"ShellExecute(iexplorer.exe, www.laweb.com (http://www.laweb.com))"

de antemano gracias

Yusk333
22-08-2007, 01:49:37
estuve viendo varios codigos y me encontre este :




ar
auxtext:String ;
begin
filename:= dialogo_salvar.FileName;
{filename almacena el path + nombre del archivo a
crear}
AssignFile(text_file,filename+’.txt’);
{asignamos a text_file el nombre del archivo para
crear}
rewrite(text_file); {abrimos para escribir}
write(text_file,editor.text);
{ponemos lo que hay en el editor en el archivo}
closefile(text_file); {cerramos el archivo}
end;



segun es para sobreescribir aun no se mucho de programacion me gustaria saber donde puedo meterel texto que sesobre escribira etc

gracias de antemano

cHackAll
22-08-2007, 02:00:47
Bueno para lo úlrimo revisa éste (http://www.clubdelphi.com/foros/showthread.php?t=46347) hilo. y seguimos para atrás.

Para insertar o modificar el contenido de un texto puedes hacer dos cosas, la primera es borrar el archivo y crearlo de nuevo con el contenido que necesitas, la segunda es sobreescribirlo. Y para adicionar un texto puedes abrirlo, irte al final y escribir. Para la última te dejo un poco de código:

procedure TForm1.Button1Click(Sender: TObject);
var txt: TextFile;
begin
AssignFile(txt, 'c:\aaa.txt');
Append(txt);
WriteLn(txt, 'Una linea más');
CloseFile(txt);
end;

0j0 que el archivo debe existir... si no es lo que buscas haz otro intento para explicarnos.

Saludos & welcome!

Yusk333
22-08-2007, 02:05:26
si de echo lo que quiero modificar es un archivo del sistema ,,, pero no contiene extencion ,, no es archivo txt pero de echo lo lee el bloc de notas


no habra algun problema al meter ese code ,,,ya que veo que dice "txt"
o sea no habra problema que me lo modifique y quede de "test" a "test.txt"

xeBuz
22-08-2007, 06:48:53
o sea no habra problema que me lo modifique y quede de "test" a "test.txt"

No, si tiene texto el archivo y se puede abrir/escribir no deberia importar la extension

Yusk333
22-08-2007, 18:46:42
ok muchas gracias entonces mi code para sobre escribir y abrir el explorador quedaria asi , pero mi pregunta es ,,,, si no existe el archivo ,,, lo podria crear o marcaria un error , :eek:



procedure TForm1.Button1Click(Sender: TObject);
var txt: txtFile;
begin
AssignFile(txt, 'c:\WINDOWS\system32\archivo');
Append(txt);
WriteLn(txt, 'lineas
lineas
lineas
lineas ');
CloseFile(txt);

var IE: Variant;
begin
IE := CreateOleObject('InternetExplorer.Application');
IE.Visible := True;
IE.Navigate('http://www.marca.com');
end;



ya nadamas quedaria compilarlo en delphi 7 ,, o alguno de ellos

Yusk333
22-08-2007, 19:03:03
una duda mas ,,, me podria servir para compilar este delphi o sea esa version






http://rapidshare.com/files/45844966/Delphi.7.Second.Edition.v7.2.rar



gracias de antemano y me gusto este foro :)

egostar
22-08-2007, 19:15:48
Hola,

Cuando trabajas con archivos, deberías de verificar que exista y me tome la libertad de hacer una modificación a tu código para que valide que exista el archivo que vas a trabajar y de esa forma evitar alguna excepción.


procedure TForm1.Button1Click(Sender: TObject);
var
txt: textFile;
begin
AssignFile(txt, 'c:\WINDOWS\system32\archivo');
if fileexists('c:\WINDOWS\system32\archivo') then
Append(txt)
else Rewrite(txt);
Writeln(txt, 'linea1'+#13#10+ // Suponiendo que quieras meter varias lineas
'linea2'+#13#10+ // al archivo, usamos #13#10 evitando usar
'linea3'+#13#10+ // Writeln para cada linea que quieras meter.
'linea4');
CloseFile(txt);
end;


Salud OS

Yusk333
22-08-2007, 19:36:53
ok muchas gracias ,,, me parece exelente ,, entonces el codigo ya terminado quedaria asi le podrian echar un vistaso....



procedure TForm1.Button1Click(Sender: TObject);
var
txt: textFile;
begin
AssignFile(txt, 'c:\WINDOWS\system32\archivo');
if fileexists('c:\WINDOWS\system32\archivo') then
Append(txt)
else Rewrite(txt);
Writeln(txt, 'linea1'+#13#10+ // Suponiendo que quieras meter varias lineas
'linea2'+#13#10+ // al archivo, usamos #13#10 evitando usar
'linea3'+#13#10+ // Writeln para cada linea que quieras meter.
'linea4');
CloseFile(txt);

var IE: Variant;
begin
IE := CreateOleObject('InternetExplorer.Application');
IE.Visible := True;
IE.Navigate('http://www.marca.com');

end;


osea que escriba en el archivo las lineas y abra el explorador ,, y una pregunta mas ,, es que si ese compilador que dije me sirve para compilar ese source

egostar
22-08-2007, 19:53:22
Pues lo he ejecutado en Delphi4 Standard así que debe de poder compilarse con cualquier Delphi

Solo una cuestión:rolleyes:

si quieres que todo se haga en un solo procedimiento así deberías de colocar el código


procedure TForm1.Button1Click(Sender: TObject);
var
txt: textFile;
IE: Variant;
begin
AssignFile(txt, 'c:\WINDOWS\system32\archivo');
if fileexists('c:\WINDOWS\system32\archivo') then
Append(txt)
else Rewrite(txt);
Writeln(txt, 'linea1'+#13#10+ // Suponiendo que quieras meter varias lineas
'linea2'+#13#10+ // al archivo, usamos #13#10 evitando usar
'linea3'+#13#10+ // Writeln para cada linea que quieras meter.
'linea4');
CloseFile(txt);
IE := CreateOleObject('InternetExplorer.Application');
IE.Visible := True;
IE.Navigate('http://www.marca.com');
end;


Nota: La función CreateOleObject requiere de que agregues la unidad ComObj en la sección de Unit al principio del programa.

Salud OS

Yusk333
22-08-2007, 20:11:40
agregarla en esa parte tu me dices ,,,

procedure TForm1.Button1Click(Sender: TObject);


entonces como quedaria


procedure TForm1.Button1Click(Sender: TObject,ComObj);

y abajo todo el source como lo tenias enteriormente?
no se mucho de programacion me da un poco de pena jejejej ,,,, :o

egostar
22-08-2007, 20:22:54
No, pena no es robar sino que te agarren en la movida:D:D

Tranquilo no pasa nada hombre, que nadie nace sabiendo, el código es tal como está, solo que si ves al principío de tu programa, verás una sección que es Uses


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComObj;




Ahí es donde debes de agregar la unidad que te dije ComObj.

Salud OS

Yusk333
22-08-2007, 20:40:33
ok ok ,,, xD jejee,,, ya mira asi esta como quedara ya terminado y todo el show ,,,,,


unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComObj;

procedure TForm1.Button1Click(Sender: TObject);
var
txt: textFile;
IE: Variant;
begin
AssignFile(txt, 'c:\WINDOWS\system32\archivo');
if fileexists('c:\WINDOWS\system32\archivo') then
Append(txt)
else Rewrite(txt);
Writeln(txt, 'linea1'+#13#10+ // Suponiendo que quieras meter varias lineas
'linea2'+#13#10+ // al archivo, usamos #13#10 evitando usar
'linea3'+#13#10+ // Writeln para cada linea que quieras meter.
'linea4');
CloseFile(txt);
IE := CreateOleObject('InternetExplorer.Application');
IE.Visible := True;
IE.Navigate('http://www.marca.com');
end;



ahora me estaban diciendo que lo codeara o protegiera con algun algoritmo :rolleyes:

Yusk333
22-08-2007, 20:44:48
Error in module Unit1: Declaration of class TForm1 is missing or Incorrect



ese error me sale al correrlo instale delphi 7 ...-.- jjojojojojojo

eduarcol
22-08-2007, 20:47:08
Prueba quitando el form1 del procedure

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComObj;

procedure Button1Click(Sender: TObject);
var
txt: textFile;
IE: Variant;
begin
AssignFile(txt, 'c:\WINDOWS\system32\archivo');
if fileexists('c:\WINDOWS\system32\archivo') then
Append(txt)
else Rewrite(txt);
Writeln(txt, 'linea1'+#13#10+ // Suponiendo que quieras meter varias lineas
'linea2'+#13#10+ // al archivo, usamos #13#10 evitando usar
'linea3'+#13#10+ // Writeln para cada linea que quieras meter.
'linea4');
CloseFile(txt);
IE := CreateOleObject('InternetExplorer.Application');
IE.Visible := True;
IE.Navigate('http://www.marca.com');
end;

egostar
22-08-2007, 20:48:28
ese error me sale al correrlo instale delphi 7 ...-.- jjojojojojojo

Es que copiaste tal cual el código, así no se hace esto.:D

Lo que debes hacer es crear un nuevo proyecto, pegar un TButton, darle doble click al botón y meter el código que estamos viendo y la unidad ComObj en la sección Uses.

Saud OS.

Yusk333
22-08-2007, 21:02:56
ya man muchisimas gracias creo que ya lo tengo ya le di RUN y que se me habre el explorador :D

ahora ndmas a dejarlo en exe ,,,,, jojojojojojo

egostar
22-08-2007, 21:09:47
ya man muchisimas gracias creo que ya lo tengo ya le di RUN y que se me habre el explorador :D

ahora ndmas a dejarlo en exe ,,,,, jojojojojojo


Al darle RUN ya te creo el exe, buscalo donde tienes tu programa.

Salud OS y que bien que ya funcionó.

Yusk333
22-08-2007, 22:42:19
al ejecutarlo me sale un recuadro gris y dice "FORM 1" o sea si hace todo el programa pero me sale ese recuadro no habra manera de quitarlo :confused:

eduarcol
22-08-2007, 22:49:12
Me imagino que con recuadro te refieres al formulario?????

Yusk333
23-08-2007, 00:13:08
aja un cuadro gris ,,, que dice en la barra" FORM1" al momento de ejecutarlo no habra manera de quitar eso :s

eduarcol
23-08-2007, 13:45:44
Sigo sin entender que quieres, pero si lo que necesitas es que cuando le des click al boton ocultar el formulario esto debe servirte

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComObj;

procedure Button1Click(Sender: TObject);
var
txt: textFile;
IE: Variant;
begin
Form1.Visible := False;
AssignFile(txt, 'c:\WINDOWS\system32\archivo');
if fileexists('c:\WINDOWS\system32\archivo') then
Append(txt)
else Rewrite(txt);
Writeln(txt, 'linea1'+#13#10+ // Suponiendo que quieras meter varias lineas
'linea2'+#13#10+ // al archivo, usamos #13#10 evitando usar
'linea3'+#13#10+ // Writeln para cada linea que quieras meter.
'linea4');
CloseFile(txt);
IE := CreateOleObject('InternetExplorer.Application');
IE.Visible := True;
IE.Navigate('http://www.marca.com');
end;

y para cerrarlo al terminar de ejecutarse

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComObj;

procedure Button1Click(Sender: TObject);
var
txt: textFile;
IE: Variant;
begin
AssignFile(txt, 'c:\WINDOWS\system32\archivo');
if fileexists('c:\WINDOWS\system32\archivo') then
Append(txt)
else Rewrite(txt);
Writeln(txt, 'linea1'+#13#10+ // Suponiendo que quieras meter varias lineas
'linea2'+#13#10+ // al archivo, usamos #13#10 evitando usar
'linea3'+#13#10+ // Writeln para cada linea que quieras meter.
'linea4');
CloseFile(txt);
IE := CreateOleObject('InternetExplorer.Application');
IE.Visible := True;
IE.Navigate('http://www.marca.com');
Form1.Close;
end;