|
|
You might want to go into a little detail describing what you want to do. "How to config..." doesn't tell us anything...
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
You could always just do a "Your welcome." response and leave it at that. Clearly they don't even have the time to explain the problem and yet they want you to spend time figuring out their problem.
There is a slight inequity in this case....
|
|
|
|
|
I agree with Dave; if you need help, you need to be as specific as possible about what you need help with and what errors occured (no applicable here, of course) if any.
I do see what you're asking in this case, though. First you must understand that once a config file is read-in, it cannot be changed (well, at least the application won't recognize any changes). The reason is that the config section handlers, once read, are cached.
So, you either have to write changes to your .config file (make sure you keep what you don't modify in-tact) and restart your application (this is how ASP.NET works - a separate AppDomain monitors Web.config for changes and restarts the ASP.NET web application's AppDomain) and or use a different medium (some arbitrary XML configuration file, INI file, the registry (not recommended), a database, etc.).
Another option is to - for your own custom sections (see IConfigurationSectionHandler ) - create a settings class (what the section handler would return after the .config file is read) that can be changed programmatically and your code that uses those settings should not cache them.
For a good article on this topic, read An extension for a Configuration Settings class in .NET[^] here on CodeProject.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Suppose I have a custom type made of a list of floats, and I want to represent it compactly in XML like this:
<MyType>[2.718, 3.142, 1.613, 1.000]</MyType>
Suppose also that I have a dataset, with a datatable where one of the columns uses MyType, which is a essentailly a float[].
My question is this: How do I ensure the tag is written into this format and read properly back into the float[] when I use ds.WriteXml and ds.ReadXml mehtods? Is there an interface or something I implement in my custom type to write on the contents for the tag and also to parse it back in?
-- James --
|
|
|
|
|
Not without having to serialize the entire DataSet itself (using the undocumented IXmlSerializable interface) - not exactly something you want to do (it gets pretty complex if you want to remain compatible with the functionality of the DataSet ).
You could try, however, to create a typed DataSet (using xsd.exe or the DataSet designer in VS.NET - right-click on your project or project folder, select Add->Add New Item and add a "DataSet"), then modify the hidden source code (use Project->Show All Files) to transform a string into a float[] .
Keep in mind, however, that most databases (Oracle is the only major database I can think of that can hold an array, IIRC) can't hold arrays. So, in Access, MS SQL Server/MSDE, MySQL, etc., this would only be a string. So should it be in your DataSet (well, in most cases). Your caller should be responsibe for serializing and deserializing that string to/from a float[] , from a logical perspective.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Heath Stewart wrote:
Keep in mind, however, that most databases (Oracle is the only major database I can think of that can hold an array, IIRC) can't hold arrays. So, in Access, MS SQL Server/MSDE, MySQL, etc., this would only be a string. So should it be in your DataSet (well, in most cases). Your caller should be responsibe for serializing and deserializing that string to/from a float[], from a logical perspective.
Your right. This is probably a better way to go. Thanks for your insight on this.
-- James --
|
|
|
|
|
What can i do to shut down a computer near me ( on the LAN 1network )
Thanks
Rock Throught The Night
|
|
|
|
|
First, the account your running your app under must have Remote Shutdown privileges on the target machine to shut it down. After all, you can't just be any old user and shutdown someones else's machine. Next, you'd have to P/Invoke the InitiateSystemShutdownEx API call with the name of the target computer to shutdown. Docs on this call begin here[^]. A little extra C# specific information can be found on PInvoke.net here[^].
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Why did that get voted down? Seemed like a reasonable answer to me. (I didn't know how to do this before as I've never had the need to find out but it seems a reasonable answer)
"You can have everything in life you want if you will just help enough other people get what they want." --Zig Ziglar
The Second EuroCPian Event will be in Brussels on the 4th of September
Can't manage to P/Invoke that Win32 API in .NET? Why not do interop the wiki way!
My Blog
|
|
|
|
|
Probably because I didn't supply any actual source code. Hey, I thought the DllImport line on PInvoke was hint enough. That line plus one more line of code to actually execute it and your done. But I guess that's what I get for forcing someone to do a little work to learn something. I just don't have to the time to write a sample app for every single post, but, apparently, some people expect that.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
|
<soapbox><blowOffSteam>
I know what I did wrong! I didn't write up a Whitewaper on the the use of System Shutdown functions. The various methods that could be used, and their pro's and con's. Can't forget to cover the security concerns, and OOOh!, AbortSystemShutdown. Need to add a plethora of sameple code too and a couple of complete apps.
Hey! Sounds like an article for CP! I haven't written an article yet, just because of the abuse that comes back when not evey single person who read your article got everything they were looking for, like Cut & Paste source. I'm still debating wheather or not I want to put in the time to do that, then put up with a bunch of n00b's who don't have a clue what they're doing, insisting your code doesn't work. Oh! And if it does work, it doesn't work exactly the way they want it.
</blowOffSteam></soapbox>
I've seen that logo. Man, 30 seconds work in Photoshop, MSPaint would have taken longer... and just because your the only person at the company, it doesn't make you a CEO, but your garanteed to be the mail boy!
But, we keep coming back here doing this day after day because we have this need to want to help people. I'd have to say it's kind of an addiction for me! My girlfriend can attest to that!
Oh well, back in the trenches I go! I've even got a couple of ideas for some articles...
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Dave Kreskowiak wrote:
and just because your the only person at the company, it doesn't make you a CEO, but your garanteed to be the mail boy!
Excellent!
I'm an addict, too, though my contant work schedule drives me away from my computer most times to spend time with my wife*. I just like to help people, and we've both gotten times where people actually take the time to respond and say "thank you". I like that and it shows that there are still decent people left who, while they may not be able to solve their problem themselves (and no one can all the time anyway), they are willing to accept any help and are grateful.
* The guy actually had the nerve to say that posting 1,000 / month is something I shouldn't boast about (which I wasn't, merely pointing out the fact that he and his little buddy are wasting my time - not vice versa - by saying "it doesn't work" and expecting me to debug their code for them) and that's why I spend so many lonely nights. I mean, if you're going to attack someone's character, you should at least check their bio. I think being married would definitely be an indication of not spending lonely nights.
It's good to blow off some steam sometimes, huh? After all the time you I, and a few others put into this forum, pressure and irritation are bound to build-up. I mean, we're only human (at least that's the guise I stick to).
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Heath Stewart wrote:
I mean, we're only human (at least that's the guise I stick to).
I won't tell anyone!
It's good to hear a "Thank You" now and then. It helps us to keep coming back for more!
Anyway... Thanks Heath! Keep posting the GREAT work! I'm learning something new from you every day!
I've gotta get out of here, go wine and dine the little woman, and get in some cuddle time! See y'all tomorrow!
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Hi,
Is there any way (API,...) to use Raster or Bitmap fonts in C# ?
In the Documents there's a note that there's no support for those type of fonts in .NET
Could anyone please give a hint or workaround for this
Thanks in advance,
nbj
|
|
|
|
|
Hi,
If you have a bitmap containing a bitmap font you can load that bitmap and when you want to write the letter 'a' you would draw that portion of the bitmap that has the 'a' on it. The portion draw is called a frame. Your bitmap would consist of a frame for each of the 26 letters and whatever punctuation you desire.
In the article "Invasion - A computer game using DirectDraw" By Mauricio Ritter found at http://www.codeproject.com/directx/invasion.asp. This approach is taken.
He does this using DirectDraw, but the same approach can be taken with GDI+.
You can implement your own raster font as well, but that would be much more work.
Karl Baum
CEO of KGB Technologies
Specializing in custom software development.
|
|
|
|
|
Hello,
I am trying to export a large set of data in to csv format. I do all the coding in C# to get the data in CSV format. I use Response.write and write the CSV data to the client in chunks. When I first flush the data buffered the IE asks the client to open/save the file.
When I make the choice to open the file it opens it in Excel and then I save it when everything is done using file->save as... option. The file thus saved is smaller in size when compared to the file saved using the saving option on the IE dialog. Why is this?
I would really appreciate any inputs on this.
Thank you
NSK
|
|
|
|
|
How big is the difference? A couple of bytes or twice as much?
If you save the .CSV file as a Unicode encoded text file and then Excel resaves it as an ASCII, UTF-8, or some other 8-bit encoding, then the filesize will be cut in half.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Thanks guys for the reply. The size going in to half is a very good point Dave. But the .CSV file on clicking save comes to 1.67MB and the one opened with excel and then saved comes to 1.16MB. The difference is few bytes. I donot specify any format for saving and windows takes is default and which I think is ASCII.
Heath's statement about binary format compression that Excel does makes some sense.
With the input above can you guys please explain this problem.
Thank you
NanSK
|
|
|
|
|
In addition to what Dave said (and to note, ASCII itself is actually a 7-bit encoding), Excels default save file filter is the Excel spreadsheet format (the .xls extension). This binary format with some compression will be smaller as well.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Thanks guys for the reply. The size going in to half is a very good point Dave. But the .CSV file on clicking save comes to 1.67MB and the one opened with excel and then saved comes to 1.16MB. The difference is few bytes. I donot specify any format for saving and windows takes is default and which I think is ASCII.
Heath's statement about binary format compression that Excel does makes some sense.
With the input above can you guys please explain this problem.
Thank you
NanSK
|
|
|
|
|
I already did explain the problem. Even though Excel may be the default viewer for opening CSV (actually, the MIME type you're using), when a user saves it will default to saving as an Excel Spreadsheet - a binary format. What don't you understand about that? After they save the file, if the extension is .xls, it's most likely an Excel Spreadsheet.
Besides, what difference does it make? It's smaller in size and, if it contains all the data, there's nothing wrong.
Even if the file is saved as a CSV by Excel (it can, but users typically have to change the file filter), it may optimize the fields in the CSV more than you've done. For example, quotes are only needed when a field contains a comma in its code. If you quote everything, Excel will most likely strip-out the superfluous quotes and, most likely, will save as the original encoding unless the user changes it.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Hi,
My understanding of the way exception work in .NET is that once an exception is thrown, the run-time unwinds the call stack until either
(a) the call stack is empty (game over) or...
(b) a catch block is found that "handles" the thrown exception
I tested this my understanding of this with the program below.
And just as I thought it would, after level5() through the exception the Runtime unwound the call stack back to level1().
My understanding is that the objectless "catch" will catch -ALL- exceptions. Period. Even unmanaged exception one of my books says.
So... if I define my static Main() as:
static void Main()
{
try
{
Application.Run(new Form1());
}
catch
{
MessageBox.Show("Not so fast!");
}
}
... is it possible for an (some) execptions to "leak" out to the Runtime?
Thanks,
Cunfewsdish
===============================================================
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace Exceptional.cs
{
///
/// Summary description for Form1.
///
public class Form1 : System.Windows.Forms.Form
{
///
/// Required designer variable.
///
private System.ComponentModel.Container components = null;
public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
level1();
}
///
/// Clean up any resources being used.
///
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.Size = new System.Drawing.Size(300,300);
this.Text = "Form1";
}
#endregion
///
/// The main entry point for the application.
///
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void level1()
{
try
{
level2();
}
catch
{
MessageBox.Show("Kawt!", "Level 1");
}
}
private void level2()
{
try
{
level3();
}
catch(System.ApplicationException se)
{
MessageBox.Show("Caught!", "Level 2");
}
}
private void level3()
{
level4();
}
private void level4()
{
level5();
}
private void level5()
{
throw new System.Exception("Error!");
}
}
}
|
|
|
|
|
If there is an Exception in the Runtime itself, it may crash your app, but an exception from inside your app can't leak out to the Runtime if you have an expcetion handler in place to grab it.
There is an exception though. Not all exceptions will propogate up the call stack. The .NET Framework wraps and applications message pump in an exception handler. If an exception is generated that the application code doesn't handle, the exception handler around the message pump will handle it. For an example, you have two forms, one is your main form and the other is a dialog form. This means an exception generated in the dialog form will NOT propogate up to the main form that Show()'d it. Understand?
If not, check this[^] article on MSDN for a quick example demonstrating this.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|