|
if I ask 'GetPrivateProfileString()' to read file
const string fileName = "c:\\temp\\myfile.ini";
instead of reading this file it reads file
const string fileName = "c:\\temp\\myfile";
In other words it drops the extention '.ini'. I have checked the facts and this is what is really going on.
Thanks for your comments.
Sample source follows.
using System.Runtime.InteropServices;
using System.Text;
using System.Diagnostics;
string key = "Key";
string defaultValue = "dftValue";
int size = 255;
StringBuilder result = new StringBuilder(size, size);
const string fileName = "c:\\temp\\myfile.ini";
for(int i=0; i < 5; i++)
{
string section = "Section" + i.ToString();
string outvalue = "Value" + i.ToString();
//WritePrivateProfileString(section, key, outvalue, fileName);
GetPrivateProfileString(section, key, defaultValue, result, size, fileName);
Debug.WriteLine(i + " result " + result);
}
|
|
|
|
|
hi,
can please tell me how do I add function to Explorer context menu (right mouse click on a file)? thanks
Paolo Ponzano
|
|
|
|
|
See Michael Dunn's article at http://www.codeproject.com/shell/ShellExtGuide1.asp and related articles for how this is done using C/C++. If you want to do this using C#, you have to create CCWs (COM-Callable Wrappers) for all the necessary COM interfaces you need to implement, as well as use the GuidAttribute and other attributes from System.Runtime.InteropServices as necessary.
If you know C/C++, you'd be wise to use it to avoid large development overheads, as well as for performance since a managed shell extension would require the CLR to be loaded which has quit a bit of overhead compared to a native DLL.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
|
|
I was just wondering if there is a way to do a control array for ease of setting up some controls. Basically I am trying to do this (syntax is more psuedo code):
<br />
controlA_View1.Top = controlA_View2.Top;<br />
controlA_View1.Left = controlA_View2.Left;<br />
controlA_View1.Visible = false;<br />
<br />
controlB_View1.Top = controlB_View2.Top;<br />
controlB_View1.Left = controlB_View2.Left;<br />
controlB_View1.Visible = false;<br />
<br />
...<br />
<br />
controlN_View1.Top = controlN_View2.Top;<br />
controlN_View1.Left = controlN_View2.Left;<br />
controlN_View1.Visible = false;<br />
<br />
I was wondering if I could do this:
<br />
Array arrView1;<br />
arrView1.Add(controlA_View1);<br />
arrView1.Add(controlB_View1);<br />
...<br />
arrView1.Add(controlN_View1);<br />
<br />
Array arrView2;<br />
arrView2.Add(controlA_View2);<br />
arrView2.Add(controlB_View2);<br />
...<br />
arrView2.Add(controlN_View2);<br />
<br />
for(int i = 0; i < arrView1.Count() && i < arrView2.Count(); i ++)<br />
{<br />
arrView1[i].Top = arrView2[i].Top;<br />
arrView1[i].Left = arrView2[i].Left;<br />
arrView2[i].Visible = false;<br />
}<br />
I am adding the controls via the form desinger because it is obviously easier to lay them out. I am using my current home project to explore deeper in to C# however I know I could do something like this with pointers or maybe with unsafe code. I remember the ref keyword can cause a reference to be passed to a function but can a ref be passed to an array?
Thanks for any help...
Brian
If you start a fire for a man, he will be warm for a day. If you start that same man on fire, he will be warm for the rest of his life.
|
|
|
|
|
You don't actually declare the variable as Array , but as Control[] , which inherits from Array implicitly:
Control[] controls = new Control[]
{
myControl1,
myControl2,
};
for (int i=0; i<controls.Length; i++)
{
Control c = controls[i];
if (i == 0) c.Location = new Point(8, 8);
else c.Location = new Point(8, 8 + controls[i - 1].Location.Y;
} You could also use a collection or list, but then you either have to cast or use a typed collection or list like Control.ControlCollection .
Also, since you need to add your controls to their container's Controls collection property anyway, you can always enumerate them all after adding them and initialize their properties.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I use a openfiledialog but i want it to return the filename with the extension and nothing more (eg: filename.doc). if i do it like this it returns the complete path:
openFileDialog1.ShowDialog();<br />
txtRunprogram.Text = openFileDialog1.FileName.ToString();
thx in advance
|
|
|
|
|
Try doing this:
string filename = String.Substring(openFileDialog1.FileName.ToString().LastIndexOf("\\"));
That should strip it out for you.
|
|
|
|
|
Or just Path.GetFileName(openFileDialog1.FileName) , which takes platform-dependent directory separators into account making your code more portable.
ToString is also completely unnecessary since FileName already returns a String .
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
First of all, you do not need to call ToString on a string! It's already a string.
Second, use Path.GetFileName instead of the previous recommendation. Path.GetFileName takes platform-dependent directory separators into account. If you want to use String.LastIndexOf , then at least use the Path.PathSeparator field to get the platform-dependent directory separator.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
dear all,
i am using crystal reports for vs.net 2002, infact i want to set my report datasource as dataset. i am using AddCommand to reterive required fields. problem is that when i set report data source as dataset it shows all those reocrds on report that are retrived by AddCommand not by my
here is my code
private DataSet myDs()
{
SqlConnection nwindConn = new SqlConnection("DataSource=localhost;Integrated Security=SSPI;Initial Catalog=testDB");
SqlCommand selectCMD = new SqlCommand("testPorcedure",nwindConn);
selectCMD.CommandType = CommandType.StoredProcedure;
selectCMD.CommandTimeout = 30;
SqlDataAdapter custDA = new SqlDataAdapter();
custDA.SelectCommand = selectCMD;
nwindConn.Open();
custDA.Fill(custDS);
nwindConn.Close();
return custDS;
}
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
this.ConnectionString();
CrystalReport1 oReport = new CrystalReport1();
oReport.SetDataSource(this.myDs());//dataset that is filled by my sp
crTableLogonInfos = new TableLogOnInfos();
crTableLogonInfo = new TableLogOnInfo();
crConnectionInfo = new ConnectionInfo();
crConnectionInfo.ServerName = server;
crConnectionInfo.DatabaseName = database;
crConnectionInfo.UserID = user_id;
crConnectionInfo.Password = password;
crTableLogonInfo.ConnectionInfo = crConnectionInfo;
crTableLogonInfo.TableName = "Command";
crTableLogonInfos.Add(crTableLogonInfo);
CrystalReportViewer1.LogOnInfo = crTableLogonInfos;
CrystalReportViewer1.ReportSource = oReport;
CrystalReportViewer1.DataBind();
}
any body kindly help me i realy stuck
thanks in advance
|
|
|
|
|
Why are you providing log into to another source when you're already providing the data in a DataSet ? Using ADO.NET to fill a DataSet (along with a connection string stored in your .config file) is much more robust than hard-coding connection information in your report source. If you ever need to re-deploy the solution elsewhere, you have to change your source and recompile. Instead, make it as abstract as possible. Just configurable connection strings and DataSet s, as you seem to do above, except you're still using connection information on the viewer, for which I really don't understand the point.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Thanks for the reply......ur point is taken.......but the problem is that even if report gets the connection info from the webconfig file..and i set the report source to the DataSet which is filled up by the SP i run....the report ignores the data source and gives the result according to the Select command i hav set in report design, which i have to do in order to tell the report which fields are required.
I need a way in which the report will display results according to the DataSet i give it.
Thanks.
|
|
|
|
|
When designing the report, instead of using a SQL statement use an ADO.NET DataSet , which is available in the report designer for data sources. It's been a long time since I worked with CR, but I remember that you could do this. That way, you need no connection-specific information and can instead just set your DataSet as the report data source.
The most likely reason it isn't working is because the report definition is binding against that SQL statement instead of expecting a DataSet . I don't know much about the internal workings of CR or the report definition, but it seems like a logical explanation.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
is C# CF able to build an application for the pocket pc
i see the c# able to do zooming but how bout bluring ? smoothing ?
if c# able to do that using GDI+ (while C# CF cannot support GDI+)and many tutorial out there but i cannot find any image processing tutorial regarding C# in compact framework for pocket pc ... pls help me any input are welcome
|
|
|
|
|
Examine the articles (like Christian Graus's excellent articles here on CodeProject) and simply determine what APIs are available in the Compact Framework. Don't worry about how they're implemented (i.e., whether they use GDI+ or older GDI calls), just that they're available. The .NET Framework SDK (v1.1) will tell when something is available in the Compact Framework, either in-line with the documentation or at the bottom in the "Platforms" section.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
C# doesn't do any real image processing. You need to write the code yourself. If you can't access the bits of a GDI+ bitmap ( as per my articles, or using Get/SetPixel ( slow, but if it's all you can get..... ), you simply HAVE to be able to load the functionality to create a DIBSection ( and therefore access the bits ) from GDI. Without GDI, you couldn't have a GUI on pocket PC
Christian
I have drunk the cool-aid and found it wan and bitter. - Chris Maunder
|
|
|
|
|
thx... so conlusion it's hard to code image processeing in CF .....
|
|
|
|
|
No harder than in C# generally, and certainly much easier than in C++, in terms of getting everything set up. It's just not built in.
Christian
I have drunk the cool-aid and found it wan and bitter. - Chris Maunder
|
|
|
|
|
is there any website link or sourcecode regarding this topic in C# CF ?
|
|
|
|
|
hai there,
i heard Lisp, Prolog, C/C++,Java, Python can used for AI programming.
Because features of this language that are good for AI programming. They are garbage collection, dynamic typing, functions as data, uniform syntax, interactive environment,
and extensibility.
So which feature that our C# not satisfying ? if it satisfying all above mentioned technicics how can i start programming ? where i need to start ?
hai, feel free to contact
Sreejith SS Nair
|
|
|
|
|
Judging by the languages listed, I'm guessing you read something from the anti-Microsoft community. Just about any object-oriented language is good for AI programming, though a JIT'd environment does make first responses a little slower (but Java is prone to this as well). The only thing that C# probably suffers from in relation to what you read is that's it's produced by Microsoft, who the open-source community loves to hate (even for groundless reasons just because they think everything should be free, since we don't need to eat or shelter ourselves or anything...but don't get me started in this forum).
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Where to start? Make sure you understand AI fundementals. Beyond that you should pick the language binding you are most familiar and semi-importantly the ones you can get the tools for. Except for garbage collection, no computer language consider "modern" is missing any of those features (and there is nothing in AI that indicates you need garbage collection for functionality).
|
|
|
|
|
sreejith ss nair wrote:
They are garbage collection, dynamic typing, functions as data, uniform syntax, interactive environment,
and extensibility.
I suggest reading some background on AI 1st. These thing you have mentioned does make live easier and slower. Any language capable of powerful number crunching and efficient code generation should do (iow C/Fortran/Assembler). Anything you can do in most languages can be done in C with a bit of extra work, IMO saving u time when u get to optimizations. Also the aforementioned languages's code generation can be tailored where "higher" level languages you have to rely on the subsystem .
Im not sure what Father Stewart was trying to sell you
|
|
|
|