|
There is no culture specified for (Amharic) ethiopia
but i've used the affrikans culture to fit my needs by customizing the properties
now i wanted to use the DateTimeFormatInfo to change the way my dates looked on the
app and to have it a local feel i inherited from the System.Globalization.Calendar class
to make my own EthiopianCalendar class. But the propblem is i can not assign
this class's instance to the Affrikans culture in stance DateTimeFormatInfo property.
I tried to have a new writeble instance for the DateTimeFormatInfo but setting the caelndar
property results in InvalidOperationException i think caelndars can not be assigned if they
are not listed in the optional calendars list.
But why did microsoft made the Calendar class abstract, there is no use in inheriting
from this class if we can't set it to a DateTimeFormat.Calendar property, or we have to write our own
class that implements IFormatProvider like DateTimeFormatInfo (that's sad) ????
Is there any way to get around this ??
I've asked this question before but no one was able to give me an answer. if u can ....
-- modified at 10:25 Monday 3rd October, 2005
|
|
|
|
|
I need to convert a string made up of date/time + 9 digit number in to hex value then into a string...any ideas ?
i.e.
convert "20050910120013123456789" into Hex string equivalent
|
|
|
|
|
I think this could work!
1st:
Convert the string into Int64;
string datetimestring;
Int64 datetimeint64 = Convert.ToInt64(datetimestring);
2nd:
Convertion to Hex, by using this Method:
string hexstring = IntToHex(datetimeint64);
public string IntToHex(System.Int64 number)
{
return String.Format("{0:x}", number);
}
Hope it works!
Good luck,
Martin
-- modified at 10:23 Monday 3rd October, 2005
|
|
|
|
|
I've tried that but the number is too large to convert to a Int64
i.e.
string sTemp = DateTime.Now.ToString("yyyyMMddHHmmss")+"123456789";
Int64 iTemp = Convert.ToInt64(sTemp);
Throws exception......
|
|
|
|
|
Would a Decimal work? It has an integral range of 2^96 bits
|
|
|
|
|
Ya a decimal will hold the value, but then how do you convert the decimal into Hex string ?
|
|
|
|
|
Integer division will let you split it into high and low 64bit chunks. Then convert the int64's into strings as before and concatenate them.
|
|
|
|
|
Would you mind elaborating a bit Dan ?
|
|
|
|
|
Once you have the decimal value, use String.Format to print the Hex value. For example:
decimal d = 41476521;
string s = String.Format("{0:X}", d);
X --> uppercase A to F letters
x --> lowercase a to f letters
This MUST work
___________________________________
Tozzi is right: Gaia is getting rid of us.
My Blog [ITA]
|
|
|
|
|
No it does not work.....try it:
string sTemp = DateTime.Now.ToString("yyyyMMddHHmmss")+"12345678";
decimal dTemp = Convert.ToDecimal(sTemp);
Console.WriteLine(String.Format("{0:X",dTemp));
|
|
|
|
|
You should use decimal.Parse(sTemp)
The Convert class is not for converting a string into a numeric value.
___________________________________
Tozzi is right: Gaia is getting rid of us.
My Blog [ITA]
|
|
|
|
|
ok, I get the same value as Convert.ToDecimal(sTemp), but regardless I still get an exception when I try and format the decimal value as a Hex string with the "X" format specifier.
|
|
|
|
|
Very odd...
According to MSDN the "X" specifier prints the value in hex format.
The Format method can throw only 2 exceptions: ArgumentNullException (for the string argument) and FormatException (if the format specifiers are not valid).
MSDN tells the "X" specifier is valid only for integral number types, including (in my opinion) the decimal.
If the decimal is not supported (FormatException), the only way I know is to perform a 'manual' conversion to hex. Maybe there are some libs.
You should know how to convert a number to hex. If not, try this:
Perform a serie of divisions to 16, the rest is the hex digit. For example:
--> 315
315 / 16 = 19, rest 11 (B)
19 / 16 = 1, rest 3
1 / 16 = 0, rest 1
(continue until the result of the division becomes zero)
The hex value is 13B (reverse!!!)
___________________________________
Tozzi is right: Gaia is getting rid of us.
My Blog [ITA]
|
|
|
|
|
hi to all,
can some one please tell me why i get
<br />
An unhandled exception of type 'System.Reflection.TargetInvocationException' occurred in mscorlib.dll<br />
<br />
Additional information: Exception has been thrown by the target of an invocation.<br />
for this class, it was working fine until i added the serialization of the ping counter, i tried subclassing the ISerializable in the IPingResponse interface instead but i get the same error
<br />
using System;<br />
using System.Runtime.Serialization;<br />
<br />
<br />
namespace RemotingInterface<br />
{<br />
[Serializable()]<br />
public class PingResponse : ISerializable, IPingResponse<br />
{<br />
private DateTime requestTime;<br />
<br />
private DateTime receiveTime;<br />
<br />
private int pings;<br />
<br />
<br />
#region Serialisation Functions<br />
<br />
public PingResponse(SerializationInfo info, StreamingContext ctxt)<br />
{<br />
this.requestTime = (DateTime)info.GetValue("RequestTime", typeof(DateTime)); <br />
this.receiveTime = (DateTime)info.GetValue("ReceiveTime", typeof(DateTime)); <br />
this.pings = (int)info.GetValue("PingCount", typeof(int)); <br />
}<br />
<br />
public void GetObjectData(SerializationInfo info, StreamingContext ctxt)<br />
{<br />
info.AddValue("RequestTime", this.requestTime);<br />
info.AddValue("ReceiveTime", this.receiveTime);<br />
info.AddValue("PingCount", this.pings);<br />
}<br />
<br />
#endregion Serialisation Functions<br />
<br />
public PingResponse(DateTime request)<br />
{<br />
this.requestTime = request;<br />
}<br />
<br />
<br />
public DateTime ReceiveTime<br />
{<br />
set<br />
{<br />
this.receiveTime = value;<br />
this.pings++;<br />
}<br />
}<br />
<br />
public TimeSpan TransmissionTime<br />
{<br />
get<br />
{<br />
return this.receiveTime - this.requestTime;<br />
}<br />
}<br />
<br />
public int PingCount<br />
{<br />
get<br />
{<br />
return this.pings;<br />
}<br />
}<br />
}<br />
}<br />
kind regards,
g00fy
|
|
|
|
|
You should also tell us when this error is coming (while serialization or deserialization).
I would guess its while deserializing data from an old version of this class (where there was no pings field). Thus the line this.pings = (int)info.GetValue("PingCount", typeof(int)); will fail and the error given comes because the constructor is invoked via reflection.
You should probably put a Try-Catch around this line and anaylze the exception to determine if I'm correct. If yes, then you have to decide what to do when dealing with an old instance (e.g. ignoring it and leaving pings at 0).
|
|
|
|
|
the exception is being thrown from the client code
<br />
namespace SMSRemotingClient<br />
{<br />
internal class ServerStatusChecker<br />
{<br />
private IRemoteData remoteObject;<br />
<br />
internal ServerStatusChecker(IRemoteData remoteObj)<br />
{<br />
this.remoteObject = remoteObj;<br />
}<br />
<br />
internal void CheckStatus()<br />
{<br />
try<br />
{<br />
IPingResponse response = this.remoteObject.Ping(DateTime.Now); <br />
<br />
response.ReceiveTime = DateTime.Now;<br />
<br />
Debug.WriteLine("ping: " + DateTime.Now.ToString("h:mm:ss.fff"));<br />
Debug.WriteLine("ping turn-around: " + response.TransmissionTime.Milliseconds + " millisecs");<br />
Debug.WriteLine("ping count: " + response.PingCount);<br />
}<br />
catch(SocketException se)<br />
{<br />
Debug.WriteLine("its all gone pear-shaped, the server is offline when trying to ping"); <br />
}<br />
catch(RemotingException re)<br />
{<br />
Debug.WriteLine(re.Message);<br />
}<br />
catch(Exception see)<br />
{<br />
Debug.WriteLine(see.Message);<br />
}<br />
}<br />
}<br />
}<br />
see.Message gives
<br />
The type RemotingInterface.PingResponse in Assembly StationUpdateInterface, Version=1.0.2103.19283, Culture=neutral, PublicKeyToken=null is not marked as serializable.<br />
a try catch aarounf the line you suggested gives nothing, the exception is always from the client
|
|
|
|
|
Did you notice that the exception message has totally changed?
The new error means that the PingResponse class (which I assume is written by you) needs to be serialized. Thus you have to mark it with the Serializable attribute. Do this by just writing [Serializable] just above the class definition:
[Serializable]
public class PingResponse {
...
}
Other possibility would be to implement ISerializable in this class but then you would have to serialize it yourself.
|
|
|
|
|
hi Robert,
thank you for your help and patience.
i have the class marked as Serializable and i also implement the ISerializable interface
im not sure what the serializable attribute does, im thinking it just lets the clr know that this class need to be serialized then looks for a way to do it?
anyway this is the top part of my class, and yes i did notice the exception had changed, but i dont know why, all i did was put in the try catch
the rest of the class is just member accessors
<br />
using System;<br />
using System.Runtime.Serialization;<br />
<br />
<br />
namespace RemotingInterface<br />
{<br />
[Serializable]<br />
public class PingResponse : ISerializable, IPingResponse<br />
{<br />
private DateTime requestTime;<br />
<br />
private DateTime receiveTime;<br />
<br />
private int pings;<br />
<br />
<br />
#region Serialisation Functions<br />
<br />
public PingResponse(SerializationInfo info, StreamingContext ctxt)<br />
{<br />
this.requestTime = (DateTime)info.GetValue("RequestTime", typeof(DateTime)); <br />
this.receiveTime = (DateTime)info.GetValue("ReceiveTime", typeof(DateTime)); <br />
<br />
try<br />
{<br />
this.pings = (int)info.GetValue("Pings", typeof(int)); <br />
}<br />
catch(Exception e)<br />
{<br />
Console.WriteLine(e.Message);<br />
}<br />
}<br />
<br />
public void GetObjectData(SerializationInfo info, StreamingContext ctxt)<br />
{<br />
info.AddValue("RequestTime", this.requestTime);<br />
info.AddValue("ReceiveTime", this.receiveTime);<br />
info.AddValue("Pings", this.pings);<br />
}<br />
<br />
#endregion Serialisation Functions<br />
thanks again,
g00fy
|
|
|
|
|
Hi guys
i need help for developeing the graphic component for polar chat. i need some sample code for developing the polar chart??
code is -
//This program graphs the equation r = A * Sin(B * t).
PointF[] objAr;
double t = 0;
int i=0;
double dt = PI / 100;
do
{
objAr=new PointF[i+1];
r = System.Math.Cos(t) * System.Math.Sin(t);
//r = 3*System.Math.Sin(t);
//r = valueA * System.Math.Sin(valueB * t);
if (r>=0)
{
r=System.Math.Sqrt(r);
x = (r * System.Math.Cos(t))+50;
y = (r * System.Math.Sin(t))+50;
}
PointF PointFn=new PointF(Convert.ToSingle(x),Convert.ToSingle(y));
objAr[i]=PointFn;
t = t + dt;
i++;
}while(t <= 2 * PI);
objGraphics.DrawCurve(new Pen(new SolidBrush(Color.Red),2),objAr);
but this code generate only single line not curve according to values.
|
|
|
|
|
Well I think its because you recreate the Point array objAr in every iteration. As you don't seem to know how many points will be in the result I would recommend storing all points in an ArrayList and copying them to an array afterwards:
PointF[] objAr;
double t = 0;
double dt = PI / 100;
ArrayList pointsList = new ArrayList();
do
{
r = System.Math.Cos(t) * System.Math.Sin(t);
if (r>=0)
{
r=System.Math.Sqrt(r);
x = (r * System.Math.Cos(t))+50;
y = (r * System.Math.Sin(t))+50;
}
PointF PointFn=new PointF(Convert.ToSingle(x),Convert.ToSingle(y));
pointsList.Add(PointFn);
t = t + dt;
}while(t <= 2 * PI);
PointF[] objAr = new PointF[pointsList.Count];
pointsList.CopyTo(objAr);
objGraphics.DrawCurve(new Pen(new SolidBrush(Color.Red),2),objAr);
Haven't checked it for correctness but it should at least give you the idea of what I mean.
|
|
|
|
|
Hi guys, I work maintaining a system in C# and I was assigned
to write some code that will take take the credit card number
read by the credit card machine and automatically put that into
a text box in the program so the user doesnt have to manually type
it in once they scan the credit card. We have a NetCom K23P by
tillsmith and I dont know how to go about this. It has an RS232
connector but thats about it. Does any one have experience with this?
Thanks in advanced guys.
-Charles
|
|
|
|
|
.NET 2 makes this a snap using System.IO.Ports u can easily monitor the COM ports
otherwise u could use MSComm COM/OCX control, or use interop
these devices usually only have ASCII text from the reader, not sure about your model
basically u need to monitor the port for activity, when u detect something on the port identify that it is in the correct format, ie., check card track data formats then read the data onto your form.
i created a service to do this that maintains the form status so if a user swipes a card and the form is closed the service re-opens it an populates the form with the data.
the service just runs its own thread to monitor the port, basically blocking on port activity rather than polling the port continuously.
hope that helps,
g00fy
|
|
|
|
|
Thanks so much for your help g00fy! I think I will go
with the simplest way, which would probably be
using .NET 2's System.IO.Ports...
-Charly
|
|
|
|
|
only trouble there is that the beta is timebombed so if its a commercial app you may need to be aware of that. im not sure if only the IDE stops working or if all apps created in it stop as well
hopefully full release of .NET 2 is not far off, its alot better
regs,
g00fy
|
|
|
|
|
Hi
I was wondering if anyone could offer some advice on authenticating a .NET application with LDAP. The code seems to work fine with AD, but fails with LDAP:
(extract)
DirectoryEntry entry = new DirectoryEntry("LDAP://testdomain/DC=testdomain", "testdomain/testuser", textPassword.Text);<br />
<br />
Object obj = entry.NativeObject;<br />
DirectorySearcher search = new DirectorySearcher(entry);<br />
search.Filter = "(SAMAccountName=testuser)";<br />
search.PropertiesToLoad.Add("cn");<br />
SearchResult result = search.FindOne();<br />
<br />
if (null == result)<br />
{<br />
.<br />
.<br />
.<br />
}
The test PC runs on a Windows XP box with .NET Framework 1.1, and is bound to the respective authentication server every time.
The authentication server is a Mac OS X 10.4 server running LDAPv3.
Any suggestions?
|
|
|
|