|
Hi Paul, thanks for your answer, the problem with checking for domain names, like .com, .net .. etc, is that there are too many TLDs to check for (because you have to check for ccTLDs which are very commonly used by spammers), this is along with some other problems too, please refer to my last post.
Regards
|
|
|
|
|
Hello,
My application let user download some files from my web site,I want to let him download one file, only my program can recognize the file and work with it.Is it possible.
Thanks.
Dad
|
|
|
|
|
What would be the problem, registering the file extension on client?
|
|
|
|
|
the problem is how to structure a file that only my application can read.This file holds an image and a structure of an html document.
Dad
|
|
|
|
|
Sounds like an serialized xml document, optionally in binary format.
File itself is readable by any application or user but to understand its content is application specific.
|
|
|
|
|
|
I posted this a few days ago, but it got kinda lost. I want to have the final array NOT contain the part before the equals sign (result, etc...)
Hey, I was wondering if anyone can help me with trimming a string array. I am calling an API that returns this (At bottom of post).
I am then using this to convert that into a string array
string[] apiresult = new string[25];<br />
char[] splitter = { ';' };<br />
apiresult = result.Split(splitter);
My question is, how do I trim the string array so it just contains
success<br />
1<br />
Bob<br />
etc...
instead of
result=success<br />
userid=1<br />
firstname=Bob<br />
etc...
result=success;userid=1;firstname=Bob;lastname=Smith;companyname=Smith Enterprises;email=bsmith@boostplatform.com;address1=1 Smith Drive;address2=;city=Bobtown;state=Bobstate;postcode=12345;country=US;phonenumber=419-123-4567;notes=TESTING ACCOUNT!!;password=bsmith;status=Active;credit=1010.00;taxexempt=;language=;lastlogin=No Login Logged;billingcid=0;domainemails=;generalemails=;invoiceemails=;productemails=;supportemails=;
|
|
|
|
|
This should work:
string[] finalResult = new string[apiresult.Length];
for (int i = 0; i < apiresult.Length; i++)
{
finalResult[i] = apiresult[i].Substring(apiresult[i].IndexOf('=')+1);
}
Don't be afraid of loops.
Cheers
rotter
modified on Saturday, August 16, 2008 11:41 PM
|
|
|
|
|
Hi!
Try using this
string [] tokens = myString.split (new char[] {';' , '='});
foreach (string s in tokens)
{
//do something to s;
}
DONT use a fixed array string !!!!
|
|
|
|
|
|
I have a program that opens a small input window which prompts the user to enter a name. I want to store the name entered in the input window in a string variable in the main window. How do I do that?
Jason
|
|
|
|
|
I think you have a few options. If the scenario is that the main form creates the sub form and displays it modally the easiest solution would be to just put it in a public variable, so once it closes the variable can be accessed.
If its modeless it gets a little bit more tricky. I would make a class containing the string and an object. The main form constructor would initialize the class to some good default value, then you could make the form's constructor accept this new class. When the subclass wants to change the value, use one item in the class to lock the item (for threadsafeness) and then set the string value. The main class could then lock the string, and read it.
Hope this helped,
-Kenmaz
|
|
|
|
|
A not very clean solution :
Add a member to your dialog window
public AForm : Form
{
private string _str;
public string Str
{
get { return _str;}
set { _str = value;}
}
DoSomethingToStringAndCloseWindow ()
{
_str = "Hi there";
this.Hide();
}
}
public CallingForm : Form
{
void AMethod()
{
AForm frm = new AForm ();
frm.Str = "a string";
frm.ShowDialog(this);
string newString = frm.Str;
frm.Close();
frm.Dispose();
}
}
}
A Cleaner solution is to share the same object instance between forms...
|
|
|
|
|
The easy and standard way to do this is to define a delegate so that your sub window can call a method on the main window to pass back the value
Christian Graus
No longer a Microsoft MVP, but still happy to answer your questions.
|
|
|
|
|
As CG said above use a delegate. This is an example[^] I geve somebody else a couple of weeks ago.
DaveBTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)Expect everything to be hard and then enjoy the things that come easy. (code-frog)
|
|
|
|
|
Dave,
I have tried the example but for some reason I get the following error:
"Error 1 'System.Windows.Window' does not contain a definition for 'SendText' and no extension method 'SendText' accepting a first argument of type 'System.Windows.Window' could be found (are you missing a using directive or an assembly reference?)
The line that I get the error on is as follows:
req.SendText = new getArtistName(changeArtistName);
I am using Windows Presentation Foundation instead of Windows Forms.
Jason
|
|
|
|
|
This works for me (WpfApplication1 : Window1 : Window2 with textBox1):
Window1.xaml.cs
using System.Windows;
namespace WpfApplication1
{
public delegate void UpdateText(string text);
public partial class Window1 : Window
{
public Window1() { InitializeComponent(); }
private void Window_Loaded(object sender, RoutedEventArgs e)
{
Window2 window2 = new Window2();
window2.SendText = new UpdateText(Update);
window2.Show();
}
private void Update(string text)
{
this.Title = text;
}
}
}
Window2.xaml.cs
using System.Windows;
using System.Windows.Controls;
namespace WpfApplication1
{
public partial class Window2 : Window
{
public UpdateText SendText;
public Window2() { InitializeComponent(); }
private void textBox1_TextChanged(object sender, TextChangedEventArgs e)
{
SendText(textBox1.Text);
}
}
}
DaveBTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)Expect everything to be hard and then enjoy the things that come easy. (code-frog)
|
|
|
|
|
This worked perfectly. Thank you very much.
Jason
|
|
|
|
|
Hi,
I'm trying to serialize a simple configuration class that contains a few methods and primitive types. It also contains one very simple class:
[XmlRootAttribute(ElementName = "WildAnimal", IsNullable = false)]
class Config
{
public int a;
public int b;
public SimpleClass classinst;
public Config()
}
class SimpleClass
{
public int c;
public int d;
public SimpleClass()
}
Along with Serialize/Deseriailze functions inside the Config class:
public void SerializeObject(Object pObject)
{
try
{
FileStream fileStream = new FileStream(s_strBaseThemeDirectory +
@"\" +m_strName+".xml", FileMode.CreateNew, FileAccess.ReadWrite);
XmlSerializer xs = new XmlSerializer(typeof(Config));
XmlTextWriter xmlTextWriter = new XmlTextWriter(fileStream, Encoding.UTF8);
xs.Serialize(xmlTextWriter, pObject);
fileStream = (FileStream)xmlTextWriter.BaseStream;
fileStream.Close();
}
catch (Exception e)
{
Utilities.Trace("Error Serializing the XML: " + e.ToString());
}
}
public Configuration DeserializeObject(string strName)
{
FileStream fileStream = new FileStream("filename.xml", FileMode.Open, FileAccess.ReadWrite);
XmlSerializer xs = new XmlSerializer(typeof(Config));
XmlTextWriter xmlTextWriter = new XmlTextWriter(fileStream, Encoding.UTF8);
return (Configuration)xs.Deserialize(fileStream);
}
Everything works fine without the SimpleClass, but when that gets thrown into the mix I've been running into exceptions being thrown (the SimpleClass is actually in an Arraylist). Any idea how I should get around this issue?
Thanks!
-Ken
|
|
|
|
|
Did You added the attributes [Serializable] in classes ?
this should be fix the problem :
[Serializable]
class Config
{
public int a;
public int b;
public SimpleClass classinst;
public Config()
}
[Serializable]
class SimpleClass
{
public int c;
public int d;
public SimpleClass()
}}
}
|
|
|
|
|
Hi
i want to cast some xEventHandlers to base System.EventHandler, i write this sample class :
public class myClass
{
public event EventHandler ControlVlaueChanged;
public event DataGridViewCellEventHandler DataGridViewCellDataChanged;
public FormEx()
{
this.ControlVlaueChanged += new EventHandler(this.OnControlValueChanged);
}
private void myMethod(Control control)
{
if (control is DataGridView) (control as DataGridView).CellValueChanged += (DataGridViewCellEventHandler)this.ControlVlaueChanged;
}
protected virtual void OnControlValueChanged(object sender, EventArgs e)
{
}
}
i want when CellValueChanged was occurs, OnControlValueChanged execute automatically, for this, in myMethod method, i try to cast our EventHandler to DataGridViewCellEventHandler, but the following error message shown me :
Cannot convert type 'System.EventHandler' to 'System.Windows.Forms.DataGridViewCellEventHandler'
how to solve my problem ?
thanks
|
|
|
|
|
Hi,
What are you trying to do is not very clear
You are trying to cast delegates? In dont think that casting is possible for delegates.
You can create a delegate that handles your controls event :
public delegate void MyEventHandler (object sender, EventArgs e);
...
void AMethod (Control c)
{
c.OnSomeEvent += new MyEventHandler(SomeMethod);
}
void SomeMethod (object sender , EventArgs e)
{
...
}
|
|
|
|
|
Thanks lisan_al_ghaib
as you can see in above code, i have a general eventHandler method to handle all events that occurs:
protected virtual void OnControlValueChanged(object sender, EventArgs e)
{
}
i want when DataGridViewCellDataChanged event occured, the above event handler method handle it, but how to do ?
thanks
|
|
|
|
|
Hi !
Here is a little sample:
void AddControlToMyEventHandler (Control c)
{
if (c is DataGrid)
{
((DataGrid)c).DataGridViewCellDataChanged += new EventHandler (OnControlValueChanged);
}
if (c is TextBox)
{
((TextBox)c).TextChanged += new EventHandler (OnControlValueChanged);
}
....
}
This should work
|
|
|
|
|
Thanks lisan_al_ghaib
but i try this, before post, this code :
private void AddControlToMyEventHandler
{
if (control is DataGridView) (control as DataGridView).CellValueChanged += new EventHandler(this.OnControlValueChanged);
}
couse the following error message shown me :
Cannot implicitly convert type 'System.EventHandler' to 'System.Windows.Forms.DataGridViewCellEventHandler'
|
|
|
|