|
Probably should post this in the SQL / ADO / ADO.NET section... If you go over to that forum and search for SSPI, you might even get some answers. The 5th search down should have the answer you're looking for.
Hogan
|
|
|
|
|
I usually get this error when our domain controller cannot be reached while trying to access a SQLServer DB.
Don't know what to do about it, though...
Regards,
mav
--
Black holes are the places where God divided by 0...
|
|
|
|
|
Hello,
I'm hoping someone can help me determine how a file is encoded when I read it in c#.
I'm reading in thousands of files that stretch over a couple of decades, and the files seem to keep changing their encryption.
the files are comma delimited and they have a header record.
I'm using the column names in the header record to create a column mapping for SqlBulkCopy, this is because over the years column names have changed or new columns have been added.
My program stops if an unrecognised column name is found and then I can check it and enter it into a mapping table.
However I'm occasionally getting strange characters in the column headings. I initially got around this problem by determing the encoding (using the peice of code at the end of the message) however I still seem to be coming across files where I can't tell what the encoding is and I'm getting strange characters (mainly when a "£" sign is not recognised).
I'm reading the file using this
using (StreamReader sr = new StreamReader(sourceFile, Encoding(sourceFile), true)
Can anyone help with this, I would be happy to replace unrecgognised characters if possible.
--------determine the type of encoding----
public static System.Text.Encoding Encoding(string sourceFile)
{
System.IO.FileStream file = null;
System.Text.Encoding enc = System.Text.Encoding.ASCII;
try
{
file = new System.IO.FileStream(sourceFile,
FileMode.Open, FileAccess.Read, FileShare.Read);
if (file.CanSeek)
{
byte[] bom = new byte[4]; // Get the byte-order mark, if there is one
file.Read(bom, 0, 4);
if ((bom[0] == 0xef && bom[1] == 0xbb && bom[2] == 0xbf) || // utf-8
(bom[0] == 0xff && bom[1] == 0xfe) || // ucs-2le, ucs-4le, and ucs-16le
(bom[0] == 0xfe && bom[1] == 0xff) || // utf-16 and ucs-2
(bom[0] == 0 && bom[1] == 0 && bom[2] == 0xfe && bom[3] == 0xff)) // ucs-4
{
enc = System.Text.Encoding.Unicode;
}
else
{
enc = System.Text.Encoding.ASCII;
}
// Now reposition the file cursor back to the start of the file
file.Seek(0, System.IO.SeekOrigin.Begin);
}
else
{
enc = System.Text.Encoding.ASCII;
}
// Close the file: never forget this step!
file.Close();
return enc;
}
--------determine the type of encoding end----
Sean
|
|
|
|
|
Hi,
I trust recent files with a BOM (byte order mask) pose no problems ?
I expect problems to exist on older files that used ASCII/ANSI or some special "code page"
to accomodate whatever special requirement existed at the time (such as the pound sign.
Seems to me you should try to classify your files in a few groups, by symptom,
and then solve it for each group individually; I dont expect there to be a ready-made
solution since what you encounter probably is ad-hoc solution attempts to small encoding
problems.
For files without BOM I often find it useful to build a histogram for the byte values,
then print out the counts that are not zero and correspond to special values (say
verything above 0x7E).
Hope this helps.
Luc Pattyn [Forum Guidelines] [My Articles]
this weeks tips:
- make Visual display line numbers: Tools/Options/TextEditor/AllLanguages/General
- show exceptions with ToString() to see all information
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
Thanks for this, I'll try addressing it by groups of files.
Sean
|
|
|
|
|
Hi all,
I really hope there is a simple and good solution for my problem. I'm opening a .jpg image (640 x 480 pixels / 96 x 96 dpi / 24 bit depth / 30kb) using Image.FromFile(); After that i'm creating a thumbnail using
GetThumbnailImage(298, 160, dummyCallBack, IntPtr.Zero);
thumbNailImg.save(location, ImageFormat.Png);
This results in a .png image (298 x 168 pixels / 178 x 134 dpi / 32 bit depth / 90kb). But as result i want a smaller (compressed) png image with the following attributes: 298 x 168 pixels, 71dpi, 24 bits depth. How can this be done? I've been looking all over the internet but didn't find any good solution.
Anyone who can help me out? Thanks in advance!
|
|
|
|
|
You can set get these things through various Image properties -- HorizontalResolution, VerticalResolution, PixelFormat.
These may take a few attempts to get it the way you want, but I'm sure with a bit of effort you'll be able to do it.
Edit: SetResolution to change the Horizontal and VerticalResolution, PixelFormat is set during the constructor for the bitmap.
-- modified at 10:30 Monday 6th August, 2007
|
|
|
|
|
Those attributes are read-only....
|
|
|
|
|
Resolutions can be changed through the SetResolution method. PixelFormat must be set in the constructor.
|
|
|
|
|
Thnx!
I've changed the way i created the png image to the one you mentioned. Now i can create an empty Bitmap with the requered attributes en 'paste' te original into it.
|
|
|
|
|
how can read information within excel file from C# application
Palestine
|
|
|
|
|
What u mean.....?
Describe little more...
So i can help u?
Nisar Inamdar.
Always for u...
|
|
|
|
|
see this excel file
http://paltareq.brinkster.net/down/complete_apps_rep.xls
in my c# application i want to make for loop to read each cell in the file ?
Palestine
|
|
|
|
|
|
You can use the OleDb Managed Data Provider to read an Excel Spreadsheet using ADO.NET and C#
|
|
|
|
|
You can use InterOp service provided by Microsoft using Excel namespace.
namespace for Excel is,
Microsoft.Office.Interop.Excel
|
|
|
|
|
Hi Bhavesh,
Just a gentle suggestion.
This solution needs that you either assumes Office to be installed in the machine or you have to distubute the office libraries along with the Apps.
Please find my last post for this question it sould provide a better and faster solution.
laddie
|
|
|
|
|
TAREQ
Try this
using System.Data.OleDb;
using System.Data;
.
.
//I am not sure giving url in the filename will work.Please check it
OleDbConnection oleConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+fileName+@";Extended Properties=""Excel 8.0;HDR=YES""");
oleConenction.Open();
OleDbCommand cmd= new OleDbCommand("select * from [Sheet1$]",oleConnection);
OleDbDataReader read = cmd.ExecuteReader();
while(read.Read())
{
Console.WriteLine(read[0]+......);
}
Please let me know if it helps
Laddie
}
|
|
|
|
|
Dear all,
If I create a new reference to an object, I would like to add a variable to that newly create reference. Let's say :
Foo foo = new Foo();
Now, everythime the code runs, I would like a variable added to foo , let's say :
First time it is called :
Foo foo1 = new Foo();
Second :
Foo foo2 = new Foo();
Is there an easy way of doing this ?
Cheers,
|
|
|
|
|
No.
What is the actual problem, why would you want this ?
Luc Pattyn [Forum Guidelines] [My Articles]
this weeks tips:
- make Visual display line numbers: Tools/Options/TextEditor/AllLanguages/General
- show exceptions with ToString() to see all information
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
foo1 and foo2 are separate instances.
|
|
|
|
|
Hi ,
I too wonder of the exact situation you would require to do that.If you can tell that we should be able to help you ourt more.
However calling the new on any object will be creating a new instance itself
eg:
Foo f;
for(int i=0;i<10;i++)
{
f= new Foo();
}
will create 10 new instances rather than 1 even though you are using the same variable name.
laddie
|
|
|
|
|
Rick van Woudenberg wrote: Is there an easy way of doing this ?
Sounds like you need an array or list
List<Foo> fooList = new List<Foo>();
fooList.Add(new Foo());
Upcoming events:
* Glasgow: Mock Objects, SQL Server CLR Integration, Reporting Services, db4o, Dependency Injection with Spring ...
"I wouldn't say boo to a goose. I'm not a coward, I just realise that it would be largely pointless."
My website
|
|
|
|
|
Thank you all for you swift reply.
Very true , new would create a new instance ( hence the name ). I can understand why this could be confusing. I will try to explain as good as I can why I would want this.
I create a new array of points, which I add to a ObjectList.
private void dataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)<br />
{<br />
foreach (DataGridViewRow SelectedRow in dataGridView.SelectedRows)<br />
{<br />
Points pt = new Points();<br />
pt.AddPoint(X,Y);<br />
RenderableObjects.Objects.Add(pt);<br />
}<br />
}
When I rerender the form, the points (X,Y) show on the screen. So everytime I click on a row in the datagridview, the method is called. However, everytime a new instance of Points() is added to the RenderableObjects list. But before adding the new X and Y point , I want the list to be cleared. This can be achieved by :
RenderableObjects.Objects.Remove(pt);
However you can't use this line in the same method, since a new reference is initiated and therefore the previous pt is not removed.
My though was ( and it was just a though ) : If I could add a variable to the new reference, I could specifically filter, something like :
private void dataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)<br />
{<br />
int x = 1;<br />
foreach (DataGridViewRow SelectedRow in dataGridView.SelectedRows)<br />
{<br />
points pt[x] = new Points();<br />
pt[x].AddPoint(X,Y);<br />
RenderableObjects.Objects.Add(pt[x]);<br />
int y = x -1 ;<br />
RenderableObjects.Objects.Remove(pt[y]);<br />
x++;<br />
}<br />
}
For obvious reasons , this code would not run 'cause you cannot use an array (x) size on a variable declaration. Like I said, it was just a thought. I hope I was able to clearify it a bit more.
Cheers
|
|
|
|
|
I have a solution using a DCom component,but the component was written in VC,I also insert the source project to the solution.Someone would like to tell me how should I do to debug such program step by step?
Thanks
|
|
|
|