Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2
Default Writing streaming data to txt file

I have data streaming in to excel from an external source. I would
like to capture this data every given interval (say 5 seconds) and
write it to a text file.
I know how to open a text file and write static data, however, I do not
know how to handle streaming data.

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 19
Default Writing streaming data to txt file

I'm curious... how are you streaming the data into Excel? Is the external
source streaming text data into the clipboard and then you paste it into
Excel?

You can use Application.OnTime to have Excel run a routine at a set time.
I've tested this out before with this code that might be useful. This routine
just writes a timestamp to a sheet and then schedules itself again to run 1
minute later:

Sub TestSchedule()
Range("a65536").End(xlUp).Offset(1, 0) = Now()
'set schedule to run in 1 minute
Application.OnTime TimeValue(DateAdd("n", 1, Now)), "TestSchedule"
End Sub


" wrote:

I have data streaming in to excel from an external source. I would
like to capture this data every given interval (say 5 seconds) and
write it to a text file.
I know how to open a text file and write static data, however, I do not
know how to handle streaming data.


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2
Default Writing streaming data to txt file

thanks for your response. The data streams in from an external stock
market quote provider (reuters).
after some tinkering I decided to use the Workbook_SheetCalculate()
function to log everytime new data comes in.
dmthornton wrote:
I'm curious... how are you streaming the data into Excel? Is the external
source streaming text data into the clipboard and then you paste it into
Excel?

You can use Application.OnTime to have Excel run a routine at a set time.
I've tested this out before with this code that might be useful. This routine
just writes a timestamp to a sheet and then schedules itself again to run 1
minute later:

Sub TestSchedule()
Range("a65536").End(xlUp).Offset(1, 0) = Now()
'set schedule to run in 1 minute
Application.OnTime TimeValue(DateAdd("n", 1, Now)), "TestSchedule"
End Sub


" wrote:

I have data streaming in to excel from an external source. I would
like to capture this data every given interval (say 5 seconds) and
write it to a text file.
I know how to open a text file and write static data, however, I do not
know how to handle streaming data.



  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 175
Default Writing streaming data to txt file

Are you pulling in data from Reuters using DDE? If so, this proposed
solution will not work very well under load - more that 300 or so RICs and
you'll see performance degrade.

You cannot really rely on COM events like Workbook_SheetCalculate() for fire
when you think they should. This will work ok for a small number of stocks.

RTD is a better mechanism, but I you may have to work abound the sheet
calculate by adding a dummy formula (I don't think Workbook_SheetCalculate()
fires for RTD updates unless they trigger a calculation).

The best way to do this is either through a genuine streaming database such
as Vhayu, K, FAME or suchlike but they are very expensive.

As a cheap alternative, write a VB application that listens to the TIB /
RMDS and streams the events to a file - that will work better and be less
flaky than an excel spreadsheet.

Good luck
--
www.alignment-systems.com


" wrote:

thanks for your response. The data streams in from an external stock
market quote provider (reuters).
after some tinkering I decided to use the Workbook_SheetCalculate()
function to log everytime new data comes in.
dmthornton wrote:
I'm curious... how are you streaming the data into Excel? Is the external
source streaming text data into the clipboard and then you paste it into
Excel?

You can use Application.OnTime to have Excel run a routine at a set time.
I've tested this out before with this code that might be useful. This routine
just writes a timestamp to a sheet and then schedules itself again to run 1
minute later:

Sub TestSchedule()
Range("a65536").End(xlUp).Offset(1, 0) = Now()
'set schedule to run in 1 minute
Application.OnTime TimeValue(DateAdd("n", 1, Now)), "TestSchedule"
End Sub


" wrote:

I have data streaming in to excel from an external source. I would
like to capture this data every given interval (say 5 seconds) and
write it to a text file.
I know how to open a text file and write static data, however, I do not
know how to handle streaming data.




Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
streaming csv data JohnHorb Excel Discussion (Misc queries) 0 May 18th 06 11:38 AM
How freeze streaming data at specific point in time? Bob Smith Excel Discussion (Misc queries) 0 February 6th 06 09:28 PM
DDE Data Streaming Macro rnrss[_3_] Excel Programming 5 October 9th 05 05:02 AM
Updating High/Low Values from a set of streaming data Richard Buttrey[_5_] Excel Programming 0 September 22nd 04 04:27 PM
Writing to a text file some data Tom Ogilvy Excel Programming 0 September 9th 04 04:25 PM


All times are GMT +1. The time now is 11:40 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"