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 12-07-2013
JuanOrtega JuanOrtega is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 130
Poder: 13
JuanOrtega Va por buen camino
Ayuda con error "Variable required"

Tengo el siguiente codigo :

Código Delphi [-]
unit test;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var test: TFileStream;

begin

test:= TFileStream.Create( ExtractFilePath( Application.ExeName ) + 'programa.exe', fmOpenWrite );
test.Position := test.Size;

test.Write('{test}'+Edit1.Text+'{test}',1024);

test.Free;

end;

Pero cuando lo cargo me dice [DCC Error] test.pas(36): E2036 Variable required

¿ Alguien me podria explicar como lo soluciono ?
Responder Con Cita
  #2  
Antiguo 12-07-2013
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 Lepuke.

Código Delphi [-]
...
var
  test: TFileStream;
  str: string;
begin
  test:= TFileStream.Create( ExtractFilePath( Application.ExeName ) + 'programa.exe', fmOpenWrite );
  try
    test.Position := test.Size;
    str := '{test}' + Edit1.Text + '{test}';
    test.Write(str, 1024);
  finally
    test.Free;
  end;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 12-07-2013
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 de nuevo.

La sugerencia del mensaje anterior soluciona el mensaje de error. Pero me quedé pensando que si tu intención es guardar la cadena textual al fin del archivo, ese código no te va a funcionar.

Hacelo de este modo:
Código Delphi [-]
var
  str : string;
  i   : Integer;
begin
  str := ExtractFilePath( Application.ExeName ) + 'programa.exe';
  with TFileStream.Create(str, fmOpenReadWrite) do
  try
    str := '{test}' + Edit1.Text + '{test}';
    Seek(0, soFromEnd);
    for i:= 1 to Length(str) do
      Write(str[i], 1);
  finally
    Free;
  end;
end;

O también podrías hacer:
Código Delphi [-]
var
  str : string;
  vec : array[0..1024] of char;
begin
  str := ExtractFilePath( Application.ExeName ) + 'programa.exe';
  with TFileStream.Create(str, fmOpenReadWrite) do
  try
    str := '{test}' + Edit1.Text + '{test}';
    Seek(0, soFromEnd);
    StrPCopy(vec, str);
    WriteBuffer(vec, Length(str));
  finally
    Free;
  end;
end;

Saludos.
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 12-07-2013 a las 19:03:18.
Responder Con Cita
  #4  
Antiguo 12-07-2013
JuanOrtega JuanOrtega is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 130
Poder: 13
JuanOrtega Va por buen camino
Antes que nada , gracias por la ayuda , pero me han surgido dos grandes problemas , el primero es que cada vez que uso un edit en la variable no figura nada en el editor winhex , te lo digo porque cada vez que compilo abro el ejecutable con winhex y controlo , eso si , cuando uso texto solo sin nigun edit se muestra mas que bien en winhex , el otro problema es que no entiendo porque el codigo en el que me ayudaste la otra vez tiene problemas para mostrarme bien las impresiones que me ayudaste hacer en este post , hay veces que se muestran (rara vez) pero en las demas veces no eh tenido suerte.

Te dejo la imagen que saque del winhex porque el siguiente codigo no me lo muestra completo.



Código Delphi [-]
var
  Buffer: array [0 .. 1023] of Char;
  str: string;
begin
  Memo1.Clear;
  str := ExtractFilePath(Application.ExeName) + 'test.exe';
  with TFileStream.Create(str, fmOpenRead) do
  try
    Memo1.Lines.BeginUpdate;
    SetLength(str, 1024);
    while Position < Size do
    begin
      Read(Buffer, 1024);
      StrCopy(PChar(str), Buffer);
      Memo1.Lines.Add(str);
    end;
  finally
    Memo1.Lines.EndUpdate;
    Free;
  end;
end;
Responder Con Cita
  #5  
Antiguo 12-07-2013
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 Lepuke.
Cita:
el primero es que cada vez que uso un edit en la variable no figura nada en el editor winhex , te lo digo porque cada vez que compilo abro el ejecutable con winhex y controlo , eso si , cuando uso texto solo sin nigun edit se muestra mas que bien en winhex
La respuesta es simple: Una constante literal será visible con un editor hexadecimal sin problemas. Pero cláramente ningún editor mostrará el valor de una "variable", ya que por su esencia, no hay manera de que pueda conocer su valor.
Recorda que una variable toma un valor luego de que uno le sea asignado durante la ejecución de la aplicación.

Cita:
el otro problema es que no entiendo porque el codigo en el que me ayudaste la otra vez tiene problemas para mostrarme bien las impresiones que me ayudaste hacer en este post , hay veces que se muestran (rara vez) pero en las demas veces no eh tenido suerte.
No entiendo a que te referis con impresiones y tampoco me queda claro que es lo que no se muestra bién.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 12-07-2013
JuanOrtega JuanOrtega is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 130
Poder: 13
JuanOrtega Va por buen camino
con impresiones me refiero a que yo estoy intentando agregar un valor a una aplicacion exe que es lo que estoy haciendo en este post , para despues con la otra aplicacion exe mostrar el valor que le deje marcado al exe (para sacar eso se abre a si mismo) , los dos programas son en delphi , por eso necesito mostrar todo el contenido de la segunda aplicacion que marque con la primera.
se me esta complicando mucho porque no entiendo un pepino de delphi por eso te muestro la imagen del winhex que es lo que estoy intentando sacar del exe lo que esta entre {test}
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
QuickReport - Banda "detail" con altura variable mcs Impresión 3 15-12-2010 09:03:16
"ADOQUERY3: Parameter 'p' not found" error (POR FAVOR AYUDA) JuanchoDev Conexión con bases de datos 20 21-04-2010 22:36:19
"OBJECT OR CLASS TYPE REQUIRED" en "APPLICATION EXENAME" Xavierator Varios 3 27-10-2008 09:09:50
Traducción del mensaje "Field value required" menfis Conexión con bases de datos 1 18-02-2005 11:43:03
Tipo de Variable."String" ó "Double" UTECYBER OOP 7 15-12-2003 20:25:39


La franja horaria es GMT +2. Ahora son las 11:28:09.


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