Solved

Capturing Data from ICS TWSocket Into a File?

Posted on 2004-04-13
7
261 Views
Last Modified: 2010-04-05
Currently i do like this and it gives me an out of memory exception after like few hours. It was supposed to capture a day's data and then save it into a file.

procedure TfmMain.MySocketDataAvailable(Sender: TObject; Error: Word);
var
  SocketData: String;

begin
  SocketData := MySocket.ReceiveStr;
 // process SocketData here, code's been taken out
  try
    FCapturedData := FCapturedData + SocketData;
  except
    on E: Exception do
      lbException.Caption := 'Exception on capturing data: ' + E.Message;
  end;
end;

Maybe i should save the captured string into a file and then append like every hour or after the string size reach a predefine limit. But i think this will slow down the program as the captured string need to be appended to file for several times or more?

Any better solution?
0
Comment
Question by:coole
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
7 Comments
 
LVL 7

Expert Comment

by:sftweng
ID: 10821338
Instead of concatenating SocketData to a single string (FCapturedData), why not add it as a new line to a hidden TMemo or TStringList which you occasionally write out to a disk file?
0
 

Author Comment

by:coole
ID: 10829514
Because i would like the data to be in it's original format so that i can playback the file with hyper terminal. Memo or StringList will store in a delimited format right unless i concatenate them into a string again?
0
 
LVL 7

Accepted Solution

by:
sftweng earned 125 total points
ID: 10829572
I suspect a single string is too small to hold all of your data, so you're going to have to use more than one; a TStringList seems to me to be the best alternative. For playback purposes, you can just ignore the string boundaries.
0
 
LVL 7

Expert Comment

by:sftweng
ID: 13190262
I believe I earned these points
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

A lot of questions regard threads in Delphi.   One of the more specific questions is how to show progress of the thread.   Updating a progressbar from inside a thread is a mistake. A solution to this would be to send a synchronized message to the…
Have you ever had your Delphi form/application just hanging while waiting for data to load? This is the article to read if you want to learn some things about adding threads for data loading in the background. First, I'll setup a general applica…
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

738 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question