Hi everyone,
I'm stuck with an assignment for my studies.
My assignment is to make a GUI for a disassembler.
Now, the professor want it to be multi-platform (Win32/Linux).

I saw a output-redirection example in Lazarus WIKI (one with memory stream), but the problem is that it's limited to very small amount of data. I don't have a clue how to make it to deal with more amount of data. I've try to clean the memory stream when it's going to be full, but it seems that I didn't do it like it should be done.

The example from wiki is at:
http://wiki.lazarus.freepascal.org/index.php/Executing_External_Programs

Can somebody help me with redirecting the output to SynMemo component? I need it to work on both Win32 and Linux.

As for now, the following lines gives me 106kb (same amount like example from the wiki), but the output should be 800kb (amount of data from 'disasm.exe test.exe > output.txt').

  with TProcess.Create(self) do begin
  Options := [poUsePipes];
  CommandLine := 'disasm.exe test.exe';
  Execute;

  while running do
  begin
       S := TStringList.Create;
       S.LoadFromStream(OutPut);
       for n := 0 to S.Count - 1 do
       SynMemo1.Lines.Add(S[n]);
       S.Free;
  end;

After a lot of experimenting, only clue a got is that the pipes are somehow limited, not the other components. The previous example has proved that the StringLists are not the ones who make that limitation (created and destroyed on every cycle of the loop).
Where is the problem?

Thanks in advance for every clue/advice you can give me.
If someone can give me the example of executing the external file, and redirecting the stdout to text file, also, working on both Win and Lin, that will also solve my problem.

I apologize for my English.

regards
Boban Spasic

_________________________________________________________________
    To unsubscribe: mail [EMAIL PROTECTED] with
               "unsubscribe" as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives

Reply via email to