|
loop through all points in the line
How to do that?
Kelvin
|
|
|
|
|
hmmm... well do a search for 'line drawing algorithm'[^] or something like that.
instead of drawing each pixel, you use each pixel to check distance with other point
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
|
There are many ways to do many things
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
StephenWhitfield wrote: I have a (straight) line between two Point's. I want to find the nearest point on that line to another arbitrary point. How can I do this?
Wouldn't the answer to that be the adjacent points in either direction, or am I missing something?
Ah I see, the arbitrary point is not on the line.
|
|
|
|
|
If you say the line runs between points A and B, the nearest point on this line C to an arbitrary point X is such that AB is perpendicular to CX. It's a long time since I've done any graphics work but this sounds like it should be solved with some basic trigonometry??
It definitely isn't definatley
|
|
|
|
|
|
I am writing a C# program that generates a spreadsheet. In the spreadsheet, column A contains unit numbers. Each unit may have several
products associated with it. So for example the spreadsheet will look like this.............
Unit # Team Leader Product Manufacturer
258 John Smith SONY
258 John Smith LG
258 John Smith MITSUBISHI
659 Chris Jones MAYTAG
659 Chris Jones KENMORE
659 Chris Jones AMANA
659 Chris Jones GE
8241 Sean White MOTOROLA
8241 Sean White SAMSUNG
8241 Sean White LG
8241 Sean White NOKIA
My problem is that I am trying to merge a range of cells in the C# program. I only want one unit number to show up and one team leader. So the spreadsheet would look like this instead......Can someone give me some assistance with this? Again it is in C#. Thanks!
Unit # Team Leader Product Manufacturer
258 John Smith SONY
LG
MITSUBISHI
659 Chris Jones MAYTAG
KENMORE
AMANA
GE
8241 Sean White MOTOROLA
SAMSUNG
LG
NOKIA
|
|
|
|
|
well i assume when you are inserting the data in the spread sheet that you are looping some sort of sorted list.
well define 2 variables before your loop and check them each time...
string lastUnit = "";
string lastLeader = "";
foreach(DataRow row in DT.Rows)
{
if(lastUnit == row["Unit"].ToString())
if(lastUnit == row["TeamLeader"].ToString())
lastUnit = row["Unit"].ToString();
lastUnit = row["TeamLeader"].ToString();
}
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
I am actually using two queries to get the data that I need in the spreadsheet. So does that mean that I would have to create two more for loops to read through both those rowsets? For example,
foreach(DataRow row in Research.Rows)
foreach(DataRow row in Product.Rows)
Here is the code that I've got so far......
int CurrentRow = 3;
Dictionary<string, string> myDictionary = new Dictionary<string, string>();
foreach (Dictionary<string, string> row2 in Research.Rows())
{
myDictionary.Add(row2["unit"], row2["tm_ldr"]);
}
foreach (Dictionary<string, string> row in Product.Rows())
{
oSheet.get_Range("A" + CurrentRow, "A" + CurrentRow).Formula = row["unit"];
try
{
oSheet.get_Range("B" + CurrentRow, "B" + CurrentRow).Formula = myDictionary[row["unit"]];
}
catch (Exception ex)
{
}
oSheet.get_Range("C" + CurrentRow, "C" + CurrentRow).Formula = row["prod_nm"];
oSheet.get_Range("D" + CurrentRow, "D" + CurrentRow).Formula = row["gnr_nm"];
oSheet.get_Range("E" + CurrentRow, "E" + CurrentRow).Formula = row["model"];
oSheet.get_Range("F" + CurrentRow, "F" + CurrentRow).Formula = row["mfr"];
CurrentRow++;
|
|
|
|
|
As you code sugests you are still only placing the data in the spread sheet in one line of code per column.
so you do the check before you put the data in.
at the end of each loop globally store the values for unit and teamLeader.
then before you insert unit into the spreedsheet, check if its value is the same as the last inserted unit value, if its the same dont insert the data to the spreadsheet.
Do the same for the teamLeader value
some example edit to your code....
object lastUnit = "";
foreach (Dictionary<string, string> row in Product.Rows())
{
if(row["unit"] != lastUnit)
{
oSheet.get_Range("A" + CurrentRow, "A" + CurrentRow).Formula = row["unit"];
lastUnit = row["unit"];
}
...see if this change works for the unit column. you will want to change the type of lastUnit to whatever type row["unit"] is
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
I ran the program with the following but now in the spreadsheet I am only getting one record per unit when I should have several.
foreach (Dictionary<string, string> row2 in Research.Rows())
{
if (row2["unit"] != lastUnit)
{
myDictionary.Add(row2["unit"], row2["tm_ldr"]);
lastUnit = row2["unit"];
}
foreach (Dictionary<string, string> row in Product.Rows())
{
if (row["unit"] != lastUnit)
{
oSheet.get_Range("A" + CurrentRow, "A" + CurrentRow).Formula = row["unit"];
lastUnit = row["unit"];
try
{
oSheet.get_Range("B" + CurrentRow, "B" + CurrentRow).Formula = myDictionary[row["unit"]];
}
catch (Exception ex)
{
}
oSheet.get_Range("C" + CurrentRow, "C" + CurrentRow).Formula = row["prod_nm"];
oSheet.get_Range("D" + CurrentRow, "D" + CurrentRow).Formula = row["gnr_nm"];
oSheet.get_Range("E" + CurrentRow, "E" + CurrentRow).Formula = row["model"];
oSheet.get_Range("F" + CurrentRow, "F" + CurrentRow).Formula = row["mfr"];
CurrentRow++;
}
}
oXL.Visible = true;
}
|
|
|
|
|
foreach (Dictionary<string, string> row2 in Research.Rows())
{
myDictionary.Add(row2["unit"], row2["tm_ldr"]);
lastUnit = row2["unit"];
foreach (Dictionary<string, string> row in Product.Rows()) {
if (row["unit"] != lastUnit)
{
oSheet.get_Range("A" + CurrentRow, "A" + CurrentRow).Formula = row["unit"];
lastUnit = row["unit"];
}
try
{
oSheet.get_Range("B" + CurrentRow, "B" + CurrentRow).Formula = myDictionary[row["unit"]];
}
catch (Exception ex)
{
}
oSheet.get_Range("C" + CurrentRow, "C" + CurrentRow).Formula = row["prod_nm"];
oSheet.get_Range("D" + CurrentRow, "D" + CurrentRow).Formula = row["gnr_nm"];
oSheet.get_Range("E" + CurrentRow, "E" + CurrentRow).Formula = row["model"];
oSheet.get_Range("F" + CurrentRow, "F" + CurrentRow).Formula = row["mfr"]; CurrentRow++;
}
oXL.Visible = true;
}
Copy and paste in CP does work so good with the code so i hope this is understandable.
Try this and let me know if your unit column displays as follows.
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
Ok so I made that change and I'm still getting only one record per unit.
Unit # Team Leader Product Name General Name Model Manufacturer
458 John Smith 42" Plasma TV Television 89465 SONY
849 Chris Jones Top Load Washer Washer 4415574 KENMORE
1024 Sean White Wireless Phone Cell Phone 541924 MOTOROLA
Before it looked like this.......
Unit # Team Leader Product Name General Name Model Manufacturer
458 John Smith 42" Plasma TV Television 89465 SONY
458 John Smith Surrnd Snd Sys Audio System 2111 MAGNAVOX
458 John Smith 32" Plasma Tv Television 43265 LG
849 Chris Jones Top Load Washer Washer 415574 KENMORE
849 Chris Jones Frnt Load Dryer Dryer 212541 KENMORE
1024 Sean White Wireless Phone Cell Phone 541924 MOTOROLA
1024 Sean White 16 GB MP3 Plyr MP3 Player 91181 ZUNE
1024 Sean White 32 GB MP3 Plyr MP3 Player 33587 APPLE
And this is what I'm trying to accomplish by merging what's in column A by unit. So for every unit 458 I want to just show one unit number but keep all the records associtated with it. What I have now with the code you gave me only gives me one record per unit. Also I'm trying to do the same thing with the team leader.
Unit # Team Leader Product Name General Name Model Manufacturer
458 John Smith 42" Plasma TV Television 89465 SONY
Surrnd Snd Sys Audio System 2111 MAGNAVOX
32" Plasma Tv Television 43265 LG
849 Chris Jones Top Load Washer Washer 415574 KENMORE
Frnt Load Dryer Dryer 212541 KENMORE
1024 Sean White Wireless Phone Cell Phone 541924 MOTOROLA
16 GB MP3 Plyr MP3 Player 91181 ZUNE
32 GB MP3 Plyr MP3 Player 33587 APPLE
modified on Wednesday, March 18, 2009 2:11 PM
|
|
|
|
|
hi to all .......
I am using c#.net windows application. for database MSAccess.
while inserting values in the table it show that
((Number of query values and destination fields are not the same.))
data base field
id name pass
autonumber text text
and my coding
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Data.OleDb;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Reservation : Form
{
OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Documents and Settings\\intel\\Desktop\\DB.mdb");
OleDbCommand cmd;
public Reservation()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
cn.Open();
cmd = new OleDbCommand("insert into Table1 values('" + textBox1.Text + "','" + textBox2.Text + "')", cn);
cmd.ExecuteNonQuery();
MessageBox.Show("inserted");
}
}
}
while insert its not inserted.........
by
sakthi
|
|
|
|
|
What is the schema of the Table1 ?
It seems that you can insert into the table, but missing the field value for some additional required field.
insert into Table1 values('field1', 'field2', 'field3', ..., 'fieldn')
n = Table1's field's count
|
|
|
|
|
database fields r
id username password
1 sakthi sakthi
2 ramesh ramesh
3 u u
(autoincreament)
and my coding
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Data.OleDb;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Reservation : Form
{
OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Documents and Settings\\intel\\Desktop\\DB.mdb");
OleDbCommand cmd;
public Reservation()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
cn.Open();
cmd = new OleDbCommand("insert into Table1 values('" + textBox1.Text +"','" + textBox2.Text + "')", cn);
cmd.ExecuteNonQuery();
MessageBox.Show("inserted");
}
}
}
while insert its not inserted.........
by
sakthi
|
|
|
|
|
HERE I USE ID AS AUTOINCREMENT
|
|
|
|
|
no caps until you have something special to say else it consider as you're shouting and nobody will reply you. Plus use Edit button at botton-right corner of the message to edit it.
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
try using square brackets around your column names. i.e. [Column1], [Column2] etc.
Also, do not include your AutoNumber column when inserting, this will be assigned automatically - you cannot write to it manually
third thing - make sure you use command parameters with your code...
cmd = new OleDbCommand("INSERT INTO Table1 ([column1], [column2]) VALUES (@1, @2)", cn);
cmd.Parameters.Add("@1", OleDbType.Char).Value = textBox1.Text;
cmd.Parameters.Add("@2", OleDbType.Char).Value = textBox2.Text;
NOTE how the column names have been specified to avoid trying to insert into the AutoNumber column
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
Hi
I have an application that contains a richtextbox with ole objects embedded into it.
The ole objects are imported from source files.
I am able to edit all embedded objects in their respective native applications except for powerpoint objects.
The powerpoint objects are activated as powerpoint slideshows and thus its not possible to edit these objects in native application.
Is it possible to change the default activation of ole powerpoint embedded objects from powerpoint slideshow mode to powerpoint presentation editing mode?
If not i also worked with the code (http://www.codeproject.com/KB/edit/richtextboxplus.aspx)
IRichEditOle richEditInterface = this.RichText.GetRichEditOleInterface();
// Create an object to hold info about the requested RTF object.
REOBJECT reObject = new REOBJECT();
IntPtr pPptObject = IntPtr.Zero;
richEditInterface.GetObject(0, reObject, GetObjectOptions.REO_GETOBJ_POLEOBJ)
// (You can get a GUID using the OLE/COM object viewer.
Guid guid = new Guid("{64818D10-4F9B-11CF-86EA-00AA00B929E8}"); // this is the GUID for powerpoint
// Query for the interface we want.
Marshal.QueryInterface(reObject.poleobj, ref guid, out pPptObject );
//i hope the following code typecasts the ole object (actually a powerpoint) into a powerpoint - but i have no clue of it
PowerPoint.Presentation ppt = (PowerPoint.Presentation)Marshal.GetTypedObjectForIUnknown(pPptObject, typeof(PowerPoint.Presentation));
Is it possible to use above code to activate this in powerpoint application editing mode?
Regards
GJ
|
|
|
|
|
Hi.
Can we run a C# App on a system without installing .NET Framework ?
Is it possible ?
Thank you.
|
|
|
|
|
well i assume you mean a C# App that uses the .Net Framework?
You could try copying the .Net Framework .DLL files that your app needs to its local directory and reference those files in your app. I think it is posible in VS or SD to set if a reference is a local copy or not. I not played with it thou so i cant be sure
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
musefan wrote: well i assume you mean a C# App that uses the .Net Framework?
You mean we can write a C# App without .NET Framework !
So, how ?
|
|
|
|
|
Well C# is just a language so.... i wouldnt know what to suggest you use it with thou. I have done game development with C# and XNA but i dont recall if it uses the .net framework thou.
Why is it you dont want end user machines to have .Net framework?
My suggestion would be just to include the .Net framework redistributable with your applications setup
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|