|
Thank You
|
|
|
|
|
Hi,
I need to create a simple application where a user types in an abbreviation of a word and this is automatically changed into the full word. The text can be entered in any application e.g. MS Word, MS Excel, Notepad, E-mail, Blog, etc.
A simple example:
Use enters.. tc<space>mw.
System recognizes a space, comma or any other punctuation and replaces the text to.. take care Matthew White.
tc -> take care
<space> triggers the previous action
mw -> Matthew White
fullstop triggers the previous action
Basically, the application matches the entered text to a dictionary (edited by user) and replaces the word with the meaning. Also the program can be running in the task bar allowing the user to disable the feature.
10x
|
|
|
|
|
|
M3rov1ngian wrote: I need to create a simple application
Well, what you are descibing does not fit this category, at least to my mind, but if you think its a simple application go ahead and create it - I would be interested in seeing the finished product.
Bob
Ashfield Consultants Ltd
Proud to be a 2009 Code Project MVP
|
|
|
|
|
Thanks for the reply Bob,
I already have the program working for text entered in a win form in my application , but I need this functionality to work system wide automatically for other applications. Have you got any idea how can I achieve this?
Thanks
|
|
|
|
|
As I said, its far from simple and to be honest I have no idea how you are going to do it - you need to hook into ANY app that has a text area and monitor key presses.
All I can say is good luck.
Bob
Ashfield Consultants Ltd
Proud to be a 2009 Code Project MVP
|
|
|
|
|
Hi,
kindly help me, I want to change date format setting example => 21-01-2009 of "Regional and Language Option" using C#.
Thank you in advance
(Riaz)
|
|
|
|
|
hi.
Please see the following code.
HistoryData is also a dataset..
string strExpression = "Date >= '1/2/2009' And Date <= 2/2/2009"
Dataset dsData = HistoryData;
DataSet dsNew = new DataSet();
DataTable dt = dsData.Tables[0];
DataRow dr = dt.Select(strExpression);
in the above code it gives the filtered rows into dr.
but i need to apply the select command to dataset and copy the filtered data into new dataset.
Please help me..
|
|
|
|
|
Hi,
first of all the statement:
DataRow dr = dt.Select(strExpression);
will return the array of rows not a single row. So it will be
DataRow[] dr = dt.Select(strExpression);
After this you can traverse in the DataRow using Foreach and then can add the same in the new table having same columns(structure)
foreach (DataRow dr in dt.Select(strExpression))
{
DataRow drRow = newtable.NewRow(); // newtable having same structure as of the main table dt
drRow["Column1"] = dr["Column1"].ToString();
drRow["Column2"] = dr["Column2"].ToString();
drRow["Column3"] = dr["Column3"].ToString();
...
drRow["Columnn"] = dr["Columnn"].ToString();
drRow.Rows.Add(drRow);
newtable.AcceptChanges();
}
This way you can get a new table having required rows.
Regards,
Kaushal Arora
|
|
|
|
|
I think better to use DataView to create new table instead looping through all filtered rows and add them to datatable
i am suggesting following
[code]
DataView dva1=new DataView(dataTable or dataSet);
DataTable dt=dva1.toTable(filterString);
[/code]
Abdul Rahaman Hamidy
Database Developer
Kabul, Afghanistan
|
|
|
|
|
I didnt find any option in which i can give the filterstring in the arguments.
Kindly elaborate the answer in detail. If you have any sample code then share.
|
|
|
|
|
|
Did somebody ask for a this? usually the people who might struggle with this kind of process are those who tend only to be interested in there own problems and prob wouldnt read other posts.
Dont mean no get you down with this, i think its very good of you to create any kind of tutorial that may help others, i just dont agree with you posting a link here
P.S i counted 4 controls in the tutorial
My opinion is... If someone has already posted an answer, dont post the SAME answer
|
|
|
|
|
It's actually blog spamming and is quite rude. The reason for the down voting.
The usual method is to publish the article here and link your blog to the article, that would be appreciated rather than spamming.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Did you just copy and paste from Microsofts' "Build a program NOW!" book and say it's your own steps? Jeez, the plagiarists these days..
|
|
|
|
|
Hi Guys. I am in the process of making my app slightly more efficient. I have been using the FileHelpers engin previously but it it was too slow in that it reads the whole file into the Array before processing it. I have changed this to use a StreamReader instead which speeds up the processing of the file dramatically as it reads one line at a time. Now, my problem is that I can't seem to get my progressbar to work properly. It seems to reach 100% before the full file has been processed. Anybody have any ideas? I have Googled and can't find an appriopriate solution for it. Below my Progressbar code.
private void UpdateProgress()
{
string filepath;
filepath = txtboxSelectTxtFile.Text;
FileInfo fi = new FileInfo(filepath);
progressBar1.Minimum = 0;
progressBar1.Maximum = Convert.ToInt32(fi.Length) / 1000;
progressBar1.Value = progressBar1.Value + 1;
int progrval = 0;
progrval = progressBar1.Value;
progrval = progrval + 1;
lblProgress.Text = ((progrval * 100) / Convert.ToInt32(progressBar1.Maximum)).ToString();
lblProgress.Refresh();
lblPercent2.Refresh();
lblRecordProcessed.Text = progrval.ToString();
lblProgText.Refresh();
lblRecordProcessed.Refresh();
}
The error I get is "Value of '237' is not a valid value. Value must be between minimum ad maximum.
From this I take it that I am not calculating the Max value correctly. I see no other way to the max value than using FileInfo.
Excellence is doing ordinary things extraordinarily well.
|
|
|
|
|
From where is UpdateProgresss called ?
Guessing,
Are you calling it after reading everyline ? If yes, then the problem might be here,
Kwagga wrote: progressBar1.Maximum = Convert.ToInt32(fi.Length) / 1000;
The file lenght being 236000, the max limit gets set to 236. But when you call for line 237 the max limit is crossed.
|
|
|
|
|
Hmmm... i think you doing the whole thing wrong
you said you making effecient then you should def use another thread. I would suggest placing a background worker in your application, then updating the progress bar with the ReportProgress handler.
This is actually not a difficult task to do so you should give it a go. The other issue i find with other threads is debugging errors, but as you have tested code already in UI thread then im sure it would work fine
If you insist on sticking with single thread, then try creating an 'outside the loop' variable for the percentage increase per update, and setting the progress bar value to match that
i.e.
float percentIncrease = 100 / fileinfo.length;//this give you a number to update with per byte
then for each byte processed
ProgressBar.Value = (int)(byteCount * percentIncrease);
something like that anyway
My opinion is... If someone has already posted an answer, dont post the SAME answer
|
|
|
|
|
I am calling the progressbar from a different thread already. The progressbar code is running in it's own thread called after each line of data is processed. Now, I see that StreamReader doesn't have a Length option to use so i can't use that. I was playing around with FileInfo earlier but couldn't get that to work properly as well. I'll just keep trying and hopefully stumble on something that works.
Excellence is doing ordinary things extraordinarily well.
|
|
|
|
|
Is there a need to process with ReadLine()? If you can process per bytes then you can use StreamReader.BaseStream and then you can get length from that.
If you need lines for whatever reason then i think your best a approach would be a quick loop through the file and count the line, a simple loop like the following should not take alot of processing time.
StreamReader sr = new StreamReader("file");
int lineCount = 1;
string line = sr.ReadLine();
while(line != null)
{
line = sr.ReadLine();
lineCount++;
}
sr.Close();
My opinion is... If someone has already posted an answer, dont post the SAME answer
|
|
|
|
|
int lines = File.ReadAllLines("filename").Length;
This should give you the number of lines. The entire file is buffered and so if the file is huge you could come into trouble. Else the loop mentioned by musefan is another option.
But still, your code is failing for the reason as I pointed out before.
|
|
|
|
|
Thanks guys. This method seems to work just fine.
Excellence is doing ordinary things extraordinarily well.
|
|
|
|
|
|
Well, quite.
Regards,
Rob Philpott.
|
|
|
|
|
A new year and Homework time again!!! When does it end......
Excellence is doing ordinary things extraordinarily well.
|
|
|
|