tags:

views:

436

answers:

5

I want to open a text file into some text editor say notepad programmatically in c/c++.

Also i want to see real time updation of text into that text file while opening in a editor.

Please suggest.

+3  A: 

Most editors accepts the path of the file-to-be-opened as 1st argument. E.g.

notepad.exe c:/foo.txt

Just execute it as a shell/runtime command in your program.

BalusC
In windows: `_spawnlp(_P_NOWAIT, "notepad.exe", "c:\\foo.txt", 0);`
Andreas Brinck
In C and C++: system("notepad.exe c:\\foo.txt");
Thomas Matthews
A: 

To get the file to open in the default application specified, try this (C#):

System.Diagnostics.Process.Start("text.txt");

To specify an application, try this:

System.Diagnostics.Process.Start( "notepad.exe", "text.txt");

I'm not aware of any way to handle real time updation of the file in the editor however.

Jim B
The question was not about C#
anon
A: 

To see real time update in your editor widow try to find editor's window handle (you may use EnumWindows() function). Insert text in the editor's textfield or reread it from the file and call RedrawWindow() after that. However calling it after each letter could give some nasty flickering if the text come from a program.

beermann
A: 

After you have it running, see above. you can possibly keep the file updated using SendMessage from the Windows API and sending Ctrl+S(save) to the notepad window.

jbcreix
+1  A: 

If you're doing something as simple as monitoring a log file, you want a unix program called "tail", or its Windows equivalent: http://tailforwin32.sourceforge.net/

It will give you a simple notepad-like Window which displays the contents of a log file in (more or less) real time.

Having the editor (notepad, tail, whatever) continually monitor the file for changes isn't your job as the C++ developer, it's up to the program.

meagar