|
I cannot help you with the underscore part, but:
\w means any character in a-z, A-Z, 0-9 or _
\. means a literal full-stop as it is escaped
the ^ means Negate
put it all together and you get 'anything that is NOT a character or number, an underscore or a full-stop'.
I have had a thought about the underscore. Since \w includes the underscore, replace it with your own character class that doesn't include the underscore.
Something like @"[^[a-zA-Z0-9]\.]"
WARNING This may not work, as I have only just started on regular expressions.
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
Thank you Henry. That is very helpful. Are you stating that there is no way to configure the parmeter to filter out the underscore?
WHEELS
|
|
|
|
|
If you only want letters and/or full stops try the following:
string initial = @"abc_def<>";
string replaced = Regex.Replace(initial, @"[^A-Za-z\.]", "");
MessageBox.Show(replaced);
I guess you might need to amend it to allow spaces etc but at least it gets rid of underscores.
|
|
|
|
|
No, I'm saying that I do not know how to do it. I did however modify my post with an attempt to do so. But as I say in the modification it may not work as I am new to regex myself.
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
If you think you might use regular expressions in other applications, can I commend to you Expresso Regular Expression Development Tool[^]. It's free, and it's good.
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
Thank you very much for that! I can see Regex being seriously usefull, but it looks so APL like that I just shudder and try to look away...
This could realy help!
No trees were harmed in the sending of this message; however, a significant number of electrons were slightly inconvenienced.
This message is made of fully recyclable Zeros and Ones
|
|
|
|
|
I never actually used APL, although one place I worked there were some who did. One look at the keyboard was enough to put me off.
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
How can I parse parenthesis block in string?
For example I have formula in string format.
((10+5)*3/(2+1))+7
I want to add stack to following order;
(10+5)
*
3
/
(2+1)
+
7
Thanks...
|
|
|
|
|
What have you tried so far? Do you have some code?
What are you asking here? If you're after somebody to write a parser for you generally you need to pay someone.
|
|
|
|
|
You could try taking a look at State of the Art Expression Evaluation[^], one of the many Expression Parsers here on CP. There are loads more on the web.
Have root round till you find one that suits your requirements, or can be easily modified to do so.
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
|
Sounds like you want the Shunting-yard algorithm[^]
You may have to change the "output queue" to "output stack" but that's trivial.
|
|
|
|
|
can we create object of partial class
This code was posted by me...
|
|
|
|
|
Yes, for example, the following code works:
public partial class Class1
{
int i = 10;
public void Foo()
{
Console.WriteLine(i);
}
}
static class Program
{
static void Main()
{
Class1 cl1 = new Class1();
cl1.Foo();
}
}
|
|
|
|
|
Yes but it will create an instance of all parts of the class (if that makes sense) and not just one of the partial implementations.
|
|
|
|
|
What exactly do you mean?
The partial keyword means nothing but: the source code for a certain class can be found in more than one ASCII file. It's all about text...
So a partial class is just another class, there is nothing like 'partial' in the IL code that the compiler generates. And of course you can instantiate a normal class...
Regards
Thomas
www.thomas-weller.de
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning. Programmer - an organism that turns coffee into software.
|
|
|
|
|
The partial keyword is just a hint to the compiler. Once the code is compiled, it is no longer partial.
|
|
|
|
|
i m writing a web app to communicate with the card reader/writer.
before communicating i need to set the COM port on which it is connected .
i knw that the system emulates this usb port as a serial port.
i need to knw the COM Port on which the device is connected ,recognize a device is connected / disconnected.i m trying to use Microsoft.Win32 but not getting how to use it actually.
i m new to c# pgming ,any answers will be a great help.
plz provide sample codes if possible.
Thanx in advance.
mukeshmkg
|
|
|
|
|
If your web app is trying to read data from the users usb connection it can't be done using ASP. If you're trying to read data from a card reader connected to the server then people will be able to help but can you clarify if you are trying to use a card reader on the server or the client?
|
|
|
|
|
I write a class, its inherit from List<>. Like this;
public class ParametersList : List<Parameter>
I don't want to show all List<> property and functions when using intellisense intance of ParametersList class. I want to use just Add() function. I write add() function in my class, like this;
public new void Add(Parameter parameter)
How can I let private other List<> property and functions?
Thanks...
|
|
|
|
|
Maybe what you want is encapsulation, rather than inheritance. With inheritance you cannot, by design, hide the public implementation of the inherited class.
try this.
public class ParameterList
{
private List<Parameter> innerList;
public ParameterList()
{
this.innerList = new List<Parameter>();
}
public void Add(Parameter parm)
{
innerList.Add(parm);
}
}
Additionally, if you are using inheritance because you want your list to conform to some interface (say IList<T> ) you can achieve this by implementing the interface in your class and passing all methods through to innerList .
|
|
|
|
|
dataminers wrote: public new void Add(Parameter parameter)
I don't recommend that; especially if you are changing what the Add method does.
As mentioned by the other responder, wrap the List and implement the IList interface, don't derive.
|
|
|
|
|
|
Hi,
I have an application in which I want to upload some values, signatures and photos to the server.I want to show 4 progress bars. Some values, signatures and photos upload status on their own progress bar. 4th progress bar will show the status of all above 3 uploads collectively.
I am posting a method where I have code for it.
private void UploadServiceValuesPhotosAndSignature()
{
bool[] allResponses;
List<signature> signatures = null;
foreach (var serviceInstance in serviceInstances)
{
//Get All Signatures
signatures = serviceValues.Select(sv => sv.Signature).Distinct().ToList();
//Get All Photos
allPhotosToUpload = PostPhotoCollection.GetPhotos(serviceInstance, context);
int count = allPhotosToUpload.Count + signatures.Count + 1;
allResponses = new bool[count];
int i = 0;
//Upload serviceValues
serviceValuesWorker = new BackgroundWorker();
serviceValuesWorker.WorkerReportsProgress = true;
serviceValuesWorker.WorkerSupportsCancellation = true;
serviceValuesWorker.DoWork += delegate(object s, DoWorkEventArgs args)
{
serviceValuesWorker.ReportProgress(10);
if (serviceValuesWorker.CancellationPending)
{
args.Cancel = true;
return;
}
serviceValuesWorker.ReportProgress(50);
//serviceValuesWorker doing its work
var serializableValues = serviceInstance.ServiceValues.AsSerializable();
var serialisedValues = new Dictionary<string, object[]=""> { { "ValuesInfo", serializableValues } }.Serialize();
string responseFromServer = ServiceRequest.GetResponse("UpdateServiceInstanceMobile", "ServiceInstances", serialisedValues, serviceInstance.ServiceInstanceID.ToString());
var response = responseFromServer.Deserialize<dictionary<string, object="">>();
bool successServiceValues = (bool)response["success"];
if (successServiceValues)
{
serviceValuesWorker.ReportProgress(100);
}
args.Result = successServiceValues;
};
serviceValuesWorker.ProgressChanged += delegate(object s, ProgressChangedEventArgs args)
{
serviceValuesProgressBar.Value = args.ProgressPercentage;
};
serviceValuesWorker.RunWorkerCompleted += delegate(object s, RunWorkerCompletedEventArgs args)
{
//serviceValuesWorker modifying the allResponses array
allResponses[i++] = (bool) args.Result;
};
serviceValuesWorker.RunWorkerAsync();
//Upload Signatures
signatureWorker = new BackgroundWorker();
signatureWorker.WorkerReportsProgress = true;
signatureWorker.WorkerSupportsCancellation = true;
signatureWorker.DoWork += delegate(object s, DoWorkEventArgs args)
{
signatureWorker.ReportProgress(10);
if (signatureWorker.CancellationPending)
{
args.Cancel = true;
return;
}
signatureWorker.ReportProgress(50);
//signatureWorker doing its work
bool[] responseArray = new bool[signatures.Count];
int j = 0;
foreach (var signature in signatures)
{
string signaturePath = signature.SignaturePath;
byte[] signatureByteArray = SignatureFileConversion.SignatureFileToByteArray(signaturePath);
string signatureToUpload = signatureByteArray.Serialize();
var signatureResponseFromServer = ServiceRequest.GetSignatureResponse("AddSignature", "ServiceInstances", serviceValuesString, serviceInstance.ServiceInstanceID.ToString(), signatureToUpload);
var signatureResponse = signatureResponseFromServer.Deserialize<dictionary<string, object="">>();
responseArray[j++] = (bool)signatureResponse["success"];
}
}
if(!responseArray.Contains(false))
{
signatureWorker.ReportProgress(100);
}
args.Result = responseArray;
};
signatureWorker.ProgressChanged += delegate(object s, ProgressChangedEventArgs args)
{
signatureProgressBar.Value = args.ProgressPercentage;
};
signatureWorker.RunWorkerCompleted += delegate(object s, RunWorkerCompletedEventArgs args)
{
bool[] signatureResponses = (bool[]) args.Result;
foreach (var response in signatureResponses)
{
//modifying the allResponses array
allResponses[i++] = response;
}
};
signatureWorker.RunWorkerAsync();
//Upload Photos
photoWorker = new BackgroundWorker();
photoWorker.WorkerReportsProgress = true;
photoWorker.WorkerSupportsCancellation = true;
photoWorker.DoWork += delegate(object s, DoWorkEventArgs args)
{
photoWorker.ReportProgress(10);
if (photoWorker.CancellationPending)
{
args.Cancel = true;
return;
}
photoWorker.ReportProgress(50);
//photoWorker doing its work
bool[] photoResponseArray = new bool[allPhotosToUpload.Count];
int k = 0;
foreach (var photo in allPhotosToUpload)
{
photoResponseArray[k++] = PostPhotoCollection.SendPhoto(photo);
}
if(!photoResponseArray.Contains(false))
{
photoWorker.ReportProgress(100);
}
args.Result = photoResponseArray;
};
photoWorker.ProgressChanged += delegate(object s, ProgressChangedEventArgs args)
{
serviceValuesProgressBar.Value = args.ProgressPercentage;
};
photoWorker.RunWorkerCompleted += delegate(object s, RunWorkerCompletedEventArgs args)
{
bool[] photoResponses = (bool[]) args.Result;
foreach (var response in photoResponses)
{
allResponses[i++] = response;
}
};
photoWorker.RunWorkerAsync();
//Update main ProgressBar
mainWorker = new BackgroundWorker();
mainWorker.WorkerReportsProgress = true;
mainWorker.WorkerSupportsCancellation = true;
mainWorker.DoWork += delegate(object s, DoWorkEventArgs args)
{
mainWorker.ReportProgress(10);
if (mainWorker.CancellationPending)
{
args.Cancel = true;
return;
}
mainWorker.ReportProgress(50);
//mainWorker doing its work
if (!allResponses.Contains(false))
{
bool IsDone = true;
string finalResponseFromServer = ServiceRequest.GetFinalResponse("SubmitChanges", "ServiceInstances", IsDone.ToString(), serviceInstance.ServiceInstanceID.ToString(), allPhotosToUpload.Count.ToString(), signatures.Count().ToString());
var finalResponse = finalResponseFromServer.Deserialize<dictionary<string, object="">>();
finalSuccessMessage = (bool)finalResponse["success"];
args.Result = finalSuccessMessage;
if (finalSuccessMessage)
{
mainWorker.ReportProgress(100);
}
}
};
mainWorker.ProgressChanged += delegate(object s, ProgressChangedEventArgs args)
{
mainProgressBar.Value = args.ProgressPercentage;
};
mainWorker.RunWorkerCompleted += delegate(object s, RunWorkerCompletedEventArgs args)
{
btnClose.IsEnabled = true;
};
mainWorker.RunWorkerAsync();
}
}
I am getting AccessViolation exception, and the array allResponses is not modified at all.
I know the result of DoWork event can be accessed in RunCompleted event, then why allResponses array is not modifying.
Thanks for reading I know the code block is too long.
|
|
|
|
|
I would declare 1 delegate for ShowProgress. Something like the below:
public delegate void ShowProgress(ProgressBar progressbar, int prg);
private void showProgress(ProgressBar progressbar, int prg)
{
if (this.WindowState == FormWindowState.Minimized)
return;
if (progressbar.InvokeRequired)
progressbar.BeginInvoke(new ShowProgress(showProgress), new object[] { progressbar, prg });
else
{
if (prg < progressbar.Maximum)
progressbar.Value = prg;
else
progressbar.Value = progressbar.Maximum;
}
}
Then call the progressbar in each worker.
showProgress(progressBar1, 100);
I think this should work.
Excellence is doing ordinary things extraordinarily well.
|
|
|
|