|
George_George wrote: various C# XML types (e.g. XMLWriter, XPath, XMLDocument, XMLSerializer, etc.)
They are .NET framework classes and not C#. I don't know what you are asking. MSXML is a separate SDK which will be useful for JScript users.
2 - I think so.
|
|
|
|
|
Thanks N a v a n e e t h!
You mean MSXML is a separate thing and has nothing with CLR XML related function (no dependencies)?
regards,
George
|
|
|
|
|
Yep, you can use MSXML with C#, but then you have to deal with all of it's problems, which are normally worse than what you are trying to avoid.
-Spacix
All your skynet questions[ ^] belong to solved
I dislike the black-and-white voting system on questions/answers.
|
|
|
|
|
Thanks Spacix,
I am still a little confused. Does the C# XML classes (in more details CLR) dependent on MSXML? Or they are separate things (products/SDKs)?
regards,
George
|
|
|
|
|
They are 100% separate things, MSXML is legacy XML interface from a while back build into IE5.5 and still used for XML DOM in JScript along with MSHTML.
Most people have used Msxml2 if you've messed with AJAX in IE.
System.XML and MSXML are incompatabale data types. I don't know of, nor heard of a way to Marshal from one to the other.
-Spacix
All your skynet questions[ ^] belong to solved
I dislike the black-and-white voting system on questions/answers.
|
|
|
|
|
Thanks Spacix,
Question answered.
regards,
George
|
|
|
|
|
I am maintaining some code in C# and I just came across "??" used in code:
string result = (_price ?? 0).ToString("C");
What does "??" mean in C#?
|
|
|
|
|
Check this
http://weblogs.asp.net/mikaelsoderstrom/archive/2008/01/02/tip-of-the-day-double-question-mark.aspx
Thanks & Regards,
Pramod
"Everyone is a genius at least once a year"
|
|
|
|
|
It's a short for
_price == null ? 0 : _price;
|
|
|
|
|
Which is short for
if(_price == null)<br />
return 0;<br />
<br />
return _price;
Which i short for...
My current favourite word is: I'm starting to run out of fav. words!
-SK Genius
Game Programming articles start - here[ ^]-
|
|
|
|
|
Is this shortcut new since .NET 2.0? I don't remember it in .NET 1.1 - I just used the regular ternary style.
|
|
|
|
|
Hi,
I have this methods and they work fine for FileStreams, but once I try to use the Xml.Save(stream) option and encode this stream, it reads nothing from it. Here is my code:
private void geraGzipToolStripMenuItem1_Click(object sender, EventArgs e)
{
XmlDocument doc = new XmlDocument();
doc.LoadXml("<teste><dirso>ama posa</dirso></teste>");
FileStream f = new FileStream("C:\\DADOS\\JR\\JRFW\\bin\\output\\read.xml.gz",
FileMode.OpenOrCreate, FileAccess.Write);
GZipEx gz = new GZipEx();
gz.EncodeXml(doc, f);
}
public void EncodeXml(XmlDocument xml, Stream streamOut)
{
Stream m = new MemoryStream();
xml.Save(m);
EncodeStream(m, streamOut);
xml.Save("C:\\DADOS\\JR\\JRFW\\bin\\output\\teste.xml");
}
public void EncodeStream(Stream streamIn, Stream streamOut)
{
GZipOutputStream gz = new GZipOutputStream(streamOut);
byte[] btout = new byte[bufferSize];
int nRead;
while ((nRead = streamIn.Read(btout, 0, bufferSize)) > 0)
{
gz.Write(btout, 0, nRead);
}
gz.Flush();
gz.Close();
streamOut.Close();
}
Please, don't worry about GZipOutputStream. It's working fine. Just the streamIn is not reading anything to btout. I also checked the streamIn length and it DO have data.
Thanks,
Dirso.
|
|
|
|
|
|
You're right
streamIn.Seek(0, SeekOrigin.Begin); Sorry
Thanks,
Dirso
|
|
|
|
|
Hi Friends .
I had some question about base64 string.
First : What's the base64 string ?
Second : How can we find, our string is base64 string ?
Third : How can we create base64 string from an image ?
Fourth : I want to create Image type from base64 string , How I can do it ?
Thanks in advance.
Sorry for my English. I'm a freshman .
|
|
|
|
|
Check out System.Convert.ToBase64String and System.Convert.FromBase64String in the MSDN doc. I've never used it but the methods are in place.
|
|
|
|
|
M-Dayyan wrote: What's the base64 string ?
It is an ASCII representation of binary data. The 64 means that it splits the raw binary up into 6 bit chunks (0-63) and encodes them as letters, numbers and a few symbols 26 (a-z) + 26 (A-Z) + 10 (0-9) + some symbols. More detail can be found here[^]
M-Dayyan wrote: How can we find, our string is base64 string ?
Because it only uses the characters in the standard. If it contains any other characters (excluding whitespace) then it is not base64
M-Dayyan wrote: How can we create base64 string from an image ?
M-Dayyan wrote: Fourth : I want to create Image type from base64 string , How I can do it ?
The answer for both is pretty much the same, but one is the reverse of the other.
There are methods in the .NET framework for this. I think you might want to look at the Convert class (use Google to find it). It has "Base64" in the method name.
The conversion will turn the base64 in to binary (a byte array) which can be used to create an Image object of some description.
|
|
|
|
|
Thanks Colin.
But can you write snippet code to detect base64 string ?
Sorry for my English. I'm a freshman .
|
|
|
|
|
Not tested, but according to the RFC something like this could work:
static bool IsBase64(string s)
{
return Regex.IsMatch(s, @"^[A-Za-z0-9\+\/]*=*$");
}
Might need some adjustments in the regex pattern, I didn't read the entire RFC now.
regards
modified 12-Sep-18 21:01pm.
|
|
|
|
|
Thanks Greeeg.
You're nice.
Sorry for my English. I'm a freshman .
|
|
|
|
|
No problem. Make sure to read my answer again, I had to modify the regex pattern so that the result does not output "True" in some bad cases.
modified 12-Sep-18 21:01pm.
|
|
|
|
|
All right Greeeg. I saw that.
Sorry for my English. I'm a freshman .
|
|
|
|
|
Hello, I am currently writing an application that needs to be able to generate a private and public key, but it must be output in PEM format. It needs this format because other related applications require this format. I can't find any functions in any libraries that do this. What would be the best way to do this? If there is nothing that does this, is there a way I could write another program in (for example: C) that generates the keys given command line options and just hope it succeeds?
Kind Regards,
Mike
|
|
|
|
|
I have a temperature scanner that reads the temperature from certain field devices. Every morning at 7:00 a.m. the scanner sends ASCII data over the serial port (originally intended to go straight to a printer). The printer does not have a serial connection, so I am monitoring the data and using the PrintDocument class to print the data. The data contains 21 temperatures for at least 11 groups. I have no problem reading the data using the SerialPort class and the ReadLine function. However, the only way to know when the last grouping is sent is by using a timer (I can't just look for group #11's data and say that is the end). For some reason, my timer will not time out after I read serial data. Here is my code. Any help would be appreciated.
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)<br />
{ <br />
tmrRecData.Enabled = false;<br />
lblStatus.Text = "Reading Data ... ";<br />
string data = serialPort1.ReadLine();<br />
ExtractData(data);<br />
tmrRecData.Enabled = true;<br />
}<br />
<br />
private void ExtractData(string data)<br />
{<br />
lblStatus.Text = "Parsing Data ... ";<br />
<br />
if (data.StartsWith("Bin:"))<br />
currBinNum = Convert.ToInt32(data.Substring(4, 6).Trim());<br />
else if (data.Length > 10)<br />
{<br />
int lvIndex = -1;<br />
ListViewItem lvi = new ListViewItem();<br />
foreach (ListViewItem item in lvLastRead.Items)<br />
{<br />
if (item.Text == currBinNum.ToString("00"))<br />
{<br />
lvIndex = item.Index;<br />
lvi = item;<br />
break;<br />
}<br />
}<br />
if (lvIndex == -1)<br />
{<br />
lvi = lvLastRead.Items.Add(new ListViewItem(currBinNum.ToString("00")));<br />
lvIndex = lvi.Index;<br />
}<br />
lblDateTime.Text = DateTime.Now.ToString("hh:mm tt MM/dd/yyyy");<br />
string tempData = data.Substring(6, data.Length - 6);<br />
tempData = tempData.Replace((char)0x1B + "G", "");<br />
tempData = tempData.Replace((char)0x1B + "H", "").TrimEnd(null);<br />
lvi.SubItems.Clear();<br />
lvi.Text = currBinNum.ToString("00");<br />
for (int i = 0; i + 2 <= tempData.Length; i += 4)<br />
{<br />
string temp = tempData.Substring(i, 3).Trim();<br />
lvi.SubItems.Add(temp);<br />
}<br />
lvLastRead.Items[lvIndex] = lvi;<br />
}<br />
lblStatus.Text = "Waiting ...";<br />
}<br />
<br />
private void tmrRecData_Tick(object sender, EventArgs e)<br />
{<br />
tmrRecData.Enabled = false;<br />
<br />
lblStatus.Text = "Saving Data ...";<br />
DirectoryInfo di = new DirectoryInfo(Application.StartupPath);<br />
di.CreateSubdirectory("Monthly Temps " + DateTime.Now.ToString("yyyy-MM"));<br />
<br />
TextWriter tw = new StreamWriter(Application.StartupPath + @"\Monthly Temps " + DateTime.Now.ToString("yyyy-MM") + @"\Daily Temps " + DateTime.Now.ToString("yyyy-MM-dd") + ".csv");<br />
tw.WriteLine("Bin,Temp. #1,Temp. #2,Temp. #3,Temp. #4,Temp. #5,Temp. #6,Temp. #7,Temp. #8,Temp. #9,Temp. #10,Temp. #11,Temp. #12,Temp. #13,Temp. #14,Temp. #15,Temp. #16,Temp. #17,Temp. #18,Temp. #19,Temp. #20,Temp. #21");<br />
foreach (ListViewItem lvi in lvLastRead.Items)<br />
{<br />
string strLine = lvi.Text;<br />
for (int i=1; i<lvi.subitems.count;> {<br />
strLine += "," + lvi.SubItems[i].Text;<br />
}<br />
tw.WriteLine(strLine);<br />
}<br />
tw.Close();<br />
<br />
lblStatus.Text = "Printing Data ...";<br />
printPreviewDialog1.ShowDialog();<br />
lblStatus.Text = "Waiting ...";<br />
}
Chase Davis
|
|
|
|
|
I suspect that the stream of temperature data may not have a NewLine at the end for ReadLine() to pick up. If that's the case you'll have to accumulate the entire stream then parse it. I'd make clever use of the ReceivedBytesThreshold and some supporting classes to do that. Hope this helps...
Scott P
“It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.”
-Edsger Dijkstra
|
|
|
|