|
There are many factors to weigh up such as, how big are the files you want to handle, how long are the lines, do you need fast random access to a line, will the file undergo mass frequent changes, is being constrained by memory an issue (editing a 250M file in memory may not be feasible), how many files do you want to be able to edit at once, etc.etc.
If you are only working with small files, say < 10K lines then an in memory, linked list may be appropriate. For larger files a disk based implementation is likely the best approach. An array of strings is unlikely to be workable if lines are inserted and deleted frequently, or change length as there would be too much time spent shuffling the heap around.
In ED (see sig) I essentially use a database which provides fast random (indexed) and sequential access to any line, the ability to work with files of any size and any number of files, with disk space the only real constraint.
There are various text book algorithms around for this. I don't have any references on hand but try doing a Google search.
Neville Franks, Author of ED for Windows. www.getsoft.com
|
|
|
|
|
in my editor im using an array of 'row objects' and that works really good.
my editor also supports folding a'la vs.net and its written in c# and there is no performance issue what so ever, so i suppose if it works in c# it would work even better in c++
but as previous posters said , it depends on the size of the file..
ive only tested mine with some 70 000 lines and it starts to get quite slow at that size , but that is because of the folding calculations and not the time spent removing / inserting rows into the document..
//Roger
---------
http://www.sourcecode4free.com/screen.gif
http://www.sourcecode4free.com/screen2.gif
http://www.sourcecode4free.com/screen3.gif
|
|
|
|
|
im trying to to do a language module to get synonyms of an input string.
And have decided upon using the dictionary provided by word.as creating an efficient dictionary itself seems like reinventingthe wheel.
i came upon the msth_am.lex and msth32.ll files
along with couple others too
which i believe is used by the word application for its thesaurus /spell check and other lex functions.[this too is only an assumption]
there seem to be functions exposed like
ThesaurusCheck
and
ThesaurusGetString
could anyone provide me inputs on -
1.how to use these functions?
2.is there any more efficient/simpler method to acces the word thesraus function
though i dont sem to be getting much inputs from else where including microsoft
open to any suggestions
fordge
|
|
|
|
|
I created a control derived from CTreeCtrl, I wanna get back the TREEITEM's lParam from the OnNMDblclk(NMHDR *pNMHDR, LRESULT *pResult) handler, how to do it ?
I tried something like below but it seems invalid.
TVITEM& item = ((LPNMTREEVIEW)pNMHDR)->itemOld;
TVITEMDATA* pData = (TVITEMDATA*) item.lParam;
|
|
|
|
|
It's a mystery to use that NMHDR for me either. What I do is to use:
HTREEITEM CTreeCtrl::GetSelectedItem ()
then you can access item data again using CTreeCtrl functions. Since on DblClick item is already selected, this would work fine ( OnLClcik as well ) But in case of OnRClick you would get problem.
ozgur.
|
|
|
|
|
i am developing a MFC client application that package some data and post back to web server using HTTP.
the targeted url is a aspx page that will process the html form and return me some content..XML.
CInternetSession session;
CHttpConnection* pConnection = 0;
CHttpFile* phttpFile = 0;
i managed to post a data to a server using;
phttpFile->OpenRequest(...)
phttpFile->SendRequest(...)
the web server successfully receives the POST and will return html or xml. how do i get the response from the web server, after the SendRequest()...?
thanks
meng
|
|
|
|
|
Something like this :-
<br />
CInternetSession conn;<br />
CHttpConnection *phttpconn;<br />
<br />
phttpconn= conn.GetHttpConnection(m_server,<br />
(INTERNET_PORT )80); <br />
<br />
CHttpFile* phttpfile = phttpconn->OpenRequest("GET",<br />
cmd); <br />
<br />
BOOL b1=phttpfile->SendRequest();<br />
<br />
<br />
CFile f2(s,CFile::OpenFlags::modeCreate | CFile::OpenFlags::modeWrite); <br />
while(true)<br />
{<br />
n=phttpfile->Read(buff2,127);<br />
buff2[n]=0;<br />
f2.Write(buff2,n); <br />
if(n<127)<br />
break;<br />
}<br />
f2.Close();<br />
<br />
Regards,
Nish
Author of the romantic comedy
Summer Love and Some more Cricket [New Win]
Review by Shog9
Click here for review[NW]
|
|
|
|
|
Nishie, you are showing them how to write html filters... And later you'll complain...
How low can you go ? (MS retrofuck)
|
|
|
|
|
|
Hello,
I have a question regarding Replaying of events captured from a CHTMLView . I want to know if there is any way by which i can replay an event (like a mouseclick on a button or on a href link in a webpage) captured from a webcontrol in a application. If so i would appreciate your help.
I have been able to capture the event but now i dont know how to replay it back. Its an MFC based application with view class derived from CHTMLView.
Prasad
Thanks again.
|
|
|
|
|
Have a look at the
WH_JOURNALPLAYBACK and
WH_JOURNALRECORD hooks available through the SetWindowsHookEx function.
Dave.
|
|
|
|
|
How can i get a filename from url that is not explicitly include filename.
E.g from http://www.microsoft.com/anypage/anypage.asp?hg=987&k=9792
I would like to get filename like abc.exe.
Thanks.
itblue
|
|
|
|
|
One solution is to do a search for *.exe on data the server sends back.
Kuphryn
|
|
|
|
|
It is difficult to get a filename when folder name or file extension is not known.
Is there another solution?
thanks.
|
|
|
|
|
Not sure what you mean. You want to get a filename from a URL that doesn't contain a filename?
--Mike--
"I'd rather you just give me a fish today, because even if you teach me how to fish, I won't do it. I'm lazy." -- Nish
Just released - 1ClickPicGrabber - Grab & organize pictures from your favorite web pages, with 1 click!
My really out-of-date homepage
Sonork-100.19012 Acid_Helm
|
|
|
|
|
Check out the UrlGetPart API. I'm not sure it does what you want but you might try to use it and/or PathFindFileName. Then again, if you are using ATL7 that ships with Visual Studio.NET you have the CUrl class that almost certainly can do what you want.
Hope this helps.
Wenn ist das Nunstück git und Slotermeyer? Ja! Beierhund das oder die Flipperwaldt gersput!
|
|
|
|
|
i have both Lparam and Param of a perticuler message
that might be keborad message i also have a hwnd of an edit box.
how to get a key message (that is in lparam and param)into an edit box using postmessage method?
r00d0034@yahoo.com
|
|
|
|
|
Hi I am using the legacy concept to copy stuff into the clipboard and it works fine. The problem is that when I want to copy for example 5 line of text, I just concatenate them together with '\n' between them into the buffer of the clipboard.
Sounds nice, yes, and it also works for pasting into Word for example, but when I try to paste into Notepad, it comes as one long line, why doesn't it recognize the '\n' ?
Any idea or suggestion ?
PS
I tried adding 0xa and 0xc between and no help
|
|
|
|
|
You Notepad you will need CR LF. ie. 0x0xd 0x0a or \r\n
Neville Franks, Author of ED for Windows. www.getsoft.com
|
|
|
|
|
i have an edit box HWND.
i want to send a message of a keydown for example U
and u (key)is typed into edit box ?
can any body tell using postmessage example with its correct parameters?
r00d0034@yahoo.com
|
|
|
|
|
The messages sent are WM_KEYDOWN, WM_CHAR and WM_KEYUP. I don't know if sending WM_KEYDOWN causes WM_CHAR to occur, I believe it does. You should look up those messages in the MSDN and try to create an LPARAM and WPARAM that match the values in the documentation, and see what happens.
Christian
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
During last 10 years, with invention of VB and similar programming environments, every ill-educated moron became able to develop software. - Alex E. - 12-Sept-2002
|
|
|
|
|
lets i have both lparam and param and hwnd of edit box then how to send message?
can u tell the correct parameters of postmessage ?
r00d0034@yahoo.com
|
|
|
|
|
I'm confused - do you realise that msdn.microsoft.com has the answer ? ::SendMessage ( from memory ) takes the HWND, the message, the LPARAM and the WPARAM, so it's
::SendMessage(MyHWND, WM_KEYDOWN, MyLParam, MyWParam);\
I presume PostMessage takes the same.
We had a big discussion in the lounge the other day about people who seem unwilling to do any research for themselves. I'd recommend in future you look up some online resources before asking basic questions. Both I and many other people here are always happy to help, but might I suggest it would be good for your personal growth to try to find out for yourself before asking questions that would take 30 seconds on the MSDN site to answer ?
Christian
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
During last 10 years, with invention of VB and similar programming environments, every ill-educated moron became able to develop software. - Alex E. - 12-Sept-2002
|
|
|
|
|
thanks for advise.
but i have seen that thing many time.i am developing project.
first of all i recorded messages of keboard and mouse and after recording i was replaying the same events.i have no problem by posting mouse messages but i have problem with keboard messages.
i have both lparam and wparam but i have to store it first for that purpose i typecast it into int32 lparam and int32 wparam that is why E_to_Match->lparam is int32.
In if condition mouse messages work correctely where E_to_Match->message is also int32 but let me tell you how i get message in it
LPEVENTMSG lpEvent= (LPEVENTMSG)lParam;
E_to_Match->message=(int32)lpEvent->message;
in the same way i have stroed lparam and wparam.
plz see that code.
><
if(E_to_Match->message==WM_LBUTTONUP)
{
::SetCursorPos(fp.x,fp.y);
PostMessage(h,WM_LBUTTONDOWN,0,0);
PostMessage(h,WM_LBUTTONDOWN,0,0);
::Sleep(500);
PostMessage(h,E_to_Match->message,0,0);
}else
{
::Sleep(2000);
PostMessage(h,E_to_Match->message,(WPARAM)E_to_Match->wParam,(LPARAM)E_to_Match->lparam);
}
else condition dont work when that postmessage line executed i dont know why but one thing i know that the following line display 777 into that editbox (of hwnd h).
thats mean mine hwnd is correct.
PostMessage(h,E_to_Match->message,103,(LPARAM)E_to_Match->lParam);
now plz tell i will be very thankful i am also trying my best effort too.
r00d0034@yahoo.com
|
|
|
|
|
I have two dialog bars in a CFrameWnd derived class.
Each of the dialogbars have child controls. Is it possible to set a taborder through both the dialog bars? ie, tab on last of dlg1 goes to first of dlg2; and tab on last of dlg2 goes to first of dlg1.
modified 29-Aug-18 21:01pm.
|
|
|
|