|
Ok,
I did a test with a loop over 10000 to show the difference.
one with:
for(int loop = 0;loop<10000; loop++)
{
Found=0;
for(int startpoint=TextToParse.IndexOf(TextToSearch,0);startpoint>-1;startpoint = TextToParse.IndexOf(TextToSearch,startpoint+1))
{
Found++;
}
}
timespan: "00:00:00.0312498"
and the regex:
for(int loop = 0;loop<10000; loop++)
{
Found = new Regex(TextToSearch, RegexOptions.Multiline).Matches(TextToParse).Count;
}
timespan: "00:00:00.1249992"
Shows factor 4. (Off corse, it is not allways factor 4)
All the best,
Martin
|
|
|
|
|
Its even more noticable when you ramp the loop up to 1M.
But....parse a really long string - eg 8k. The figures then swap round. reg ex is a lot quicker.
"More functions should disregard input values and just return 12. It would make life easier." - comment posted on WTF
|
|
|
|
|
Yes, using Regex has to be validated new for every task!
All the best,
Martin
|
|
|
|
|
Hi,
I want to manipulate the data as a small part of my project.In short I have an array[250,200] ,where numbers(actullay binary no.s) are stored .For simply let`s
int[,] array;<br />
array = new int[5, 5]; data are stored in array[,] as :
12345
12345
12345
12345
12345 OR
123451234512345123451234512345
I want manipulate the data as:
12345
54321
12345
54321
12345 OR
1234554321123455432112345
Means that :
Array[0,0]= Array[0,0];<br />
Array[0,1]= Array[0,1];<br />
Array[0,2]= Array[0,2];<br />
Array[0,3]= Array[0,3];<br />
Array[0,4]= Array[0,4];<br />
<br />
Array[1,0]= Array[1,4];<br />
Array[1,1]= Array[1,3];<br />
Array[1,2]= Array[1,2];<br />
Array[1,3]= Array[1,1];<br />
Array[1,4]= Array[1,0];<br />
<br />
<br />
Array[2,0]= Array[2,0];<br />
Array[2,1]= Array[2,1];<br />
Array[2,2]= Array[2,2];<br />
Array[2,3]= Array[2,3];<br />
Array[2,4]= Array[2,4];<br />
<br />
Array[3,0]= Array[3,4];<br />
Array[3,1]= Array[3,3];<br />
Array[3,2]= Array[3,2];<br />
Array[3,3]= Array[3,1];<br />
Array[3,4]= Array[3,0];<br />
<br />
Array[4,0]= Array[4,0];<br />
Array[4,1]= Array[4,1];<br />
Array[4,2]= Array[4,2];<br />
Array[4,3]= Array[4,3];<br />
Array[4,4]= Array[4,4];
Please send the strong and efficient logics because I have array[250,200]
|
|
|
|
|
Hello,
I'm allways using [][] instead of [,], so my example looks like this:
int[][] array = new int[5][];
for(int x=0;x<5;x++)
{
array[x] = new int[5];
}
for(int y = 0; y<array.Length; y++)
{
int[] actArray = array[y];
for(int x = 1; x<= actArray.Length; x++)
{
actArray[x-1] = x;
}
}
for(int x=1;x<5;x=x+2)
{
int[] actArray = new int[array[x].Length];
array[x].CopyTo(actArray,0);
for(int y = 0; y< array.Length; y++)
{
array[x][y] = actArray[array.Length-1-y];
}
}
All the best,
Martin
|
|
|
|
|
|
zeeShan anSari wrote: I can't understand......
Sorry!
Maybe if you copy it in your projects and debug it, you will!
All the best,
Martin
|
|
|
|
|
Hi,
Array.Reverse(array[]); is the best solution of my problem
thanks
|
|
|
|
|
Very nice! (Never used it)
Got my '5'.
All the best,
Martin
|
|
|
|
|
I think it is best!
For the 250,200 case, the basic code would be:
int[,] array = new int[250,200];
// code to initialize array
int[] reverse = new int[200];
for (int i = 0; i < 200; i++)
{
reverse[i] = array[0, 199 - i];
}
for (int i = 1; i < 250; i += 2)
{
for (int j = 0; j < 200; j++)
{
array[i,j] = reverse[j];
}
}
|
|
|
|
|
I got the Solution :
for ( int i = 0 ; i < 250 ; i++ )
{
for( int j = 0 ; j < 200 ; j++ )
{
if ( i%2 == 0 )
{
Array[i,j] = Array [ i, j ];
}
else
{
Array[i,j] = Array[ i, i-j ];
}
}
}
|
|
|
|
|
i have created the asmx code for the webservice and it works fine. it sends the data that i need to the database, but when i use the code behind page to send the information to the webservice, it does not send anything to the service even though the names are all correct etc.
please can someone send me the code for a code behind page to to a basic webservice so i can see if i have the wrong code.
ie.
if my webservice is sending a firstname to a database and i want the code behind page to take the text from a textbox and insert it into the database
thanks
Daniel
|
|
|
|
|
The code behind code is no different to any other app code that calls a database. Where is your code falling down ? Does the webservice call occur ? What happens ? Why do you need a webservice, are they not on the same server as each other ?
Christian Graus - Microsoft MVP - C++
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|
|
this is what happens. i have a create account page where i need to invoke the users details into my database, the webservice side works well on its own when i test it but running just the asmx page, but as soon as i use the webpage to pass the values to the service, it throws an error. so i assume there is an error in my code behind?
|
|
|
|
|
what is the error ? hard to comment without seeing the code.
Christian Graus - Microsoft MVP - C++
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|
|
if u want i can post the code?
here's my error
System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Data.OleDb.OleDbException: Could not use ''; file already in use. at System.Data.OleDb.OleDbConnection.ProcessResults(Int32 hr) at System.Data.OleDb.OleDbConnection.InitializeProvider() at System.Data.OleDb.OleDbConnection.Open() at CreateAccountService..ctor() --- End of inner exception stack trace ---
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Web.Services.Protocols.SoapException: System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Data.OleDb.OleDbException: Could not use ''; file already in use. at System.Data.OleDb.OleDbConnection.ProcessResults(Int32 hr) at System.Data.OleDb.OleDbConnection.InitializeProvider() at System.Data.OleDb.OleDbConnection.Open() at CreateAccountService..ctor() --- End of inner exception stack trace ---
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[SoapException: System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Data.OleDb.OleDbException: Could not use ''; file already in use.
at System.Data.OleDb.OleDbConnection.ProcessResults(Int32 hr)
at System.Data.OleDb.OleDbConnection.InitializeProvider()
at System.Data.OleDb.OleDbConnection.Open()
at CreateAccountService..ctor()
--- End of inner exception stack trace ---]
System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) +1485
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) +218
CreateAccountService.Sign(String FName, String Sname, String IDNum, String address, String ContactNum, String email, String pass, String secretQ, String answer) +171
CreateAccountCodeBehind.Submitbtn_Click(Object sender, EventArgs e) +226
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +83
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1277
--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:1.1.4322.573; ASP.NET Version:1.1.4322.573
|
|
|
|
|
Interesting - can you step into the webservice and see what line causes it ? Could it be the connection string is broken ?
Christian Graus - Microsoft MVP - C++
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|
|
well the webservice works when i run the asmx page? not sure how to step through it
|
|
|
|
|
attach the debugger to the process, then call it.
It's really hard to say more without seeing code.
Christian Graus - Microsoft MVP - C++
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|
|
the error said it was an invalid method... i dont know why
this is the code behind:
//////////////////////////////////////////////////
using System;
using System.Collections;
using System.Data;
using System.Data.OleDb;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public class CreateAccountCodeBehind : Page
{
protected TextBox FirstNameTB; //declaring the objects that are used within the aspx page and need coding
protected TextBox SurnameTB;
protected TextBox IDTB;
protected TextBox AddressTB;
protected TextBox ContactNumTB;
protected TextBox EmailAddTB;
protected TextBox PasswordTB;
protected TextBox ConfirmPasswordTB;
protected TextBox AnswerTB;
protected DropDownList QuestionList;
public void Submitbtn_Click(object sender, EventArgs e) //creating the new instance of the webservice and using the correct parameters
{
string First = FirstNameTB.Text;
string Surn = SurnameTB.Text;
string ID = IDTB.Text;
string Add = AddressTB.Text;
string con = ContactNumTB.Text;
string em = EmailAddTB.Text;
string pa = PasswordTB.Text;
string qu = QuestionList.SelectedItem.Text;
string an = AnswerTB.Text;
CreateAccountService SignUp = new CreateAccountService();
SignUp.Sign(First, Surn, ID, Add, con, em, pa, qu, an);
Response.Redirect("LoginPage.aspx");
}
public void ClearBtn_Click(object sender, EventArgs e) //clearing all user-entered fields
{
FirstNameTB.Text = "";
SurnameTB.Text = "";
IDTB.Text = "";
AddressTB.Text = "";
ContactNumTB.Text = "";
EmailAddTB.Text = "";
PasswordTB.Text = "";
ConfirmPasswordTB.Text = "";
AnswerTB.Text = "";
}
}
////////////////////////////////////////
this is the amsx:
//////////////////////////////////////
<%@ WebService language="C#" Debug="True" class="CreateAccountService" %>
using System;
using System.Web.Services;
using System.Xml.Serialization;
using System.Data;
using System.Data.OleDb;
using System.IO;
using System.Collections;
[WebService(Namespace="http://localhost/LocalWebServices/")]
public class CreateAccountService : WebService
{
OleDbConnection conn;
public CreateAccountService()
{
conn = new OleDbConnection(@"provider=Microsoft.JET.OLEDB.4.0;
data Source = c:\\LocalWebServices\\Bank.mdb");
conn.Open();
}
[WebMethod]
public void Sign(string FName, string Sname, string IDNum, string address, string ContactNum, string email, string pass, string secretQ, string answer)
{
OleDbCommand cmd = conn.CreateCommand();
cmd.CommandText = "INSERT INTO Customers (FirstName,Surname,IDNumber,Address,ContactNumber,EmailAddress,Passwrd,SecretQuestion,Answer) VALUES ('" + FName + "','" + Sname + "','" + IDNum + "','" + address + "','" + ContactNum + "','" + email + "','" + pass + "','" + secretQ + "','" + answer + "')" ;
cmd.ExecuteNonQuery();
conn.Close();
}
}
|
|
|
|
|
My guess is that the connection is still open between 2 consecutive clicks. You should declare in your service the connection as a member and lock the connection in the Sign method.
|
|
|
|
|
Sorry for the member part...didn't see it there . But you should still lock the connection because I believe that 2 different objects try to use it. Maybe I am wrong but it wouldn't hurt to try.
|
|
|
|
|
how do i lock the connection?
thanks for the help
|
|
|
|
|
You write something like this :
using System.Threading;
..............
Sign(...)
{
lock(connection)
{
----===Your insertion code===----
}
}
I am fighting against the Univers...
Reference-Rick Cook
|
|
|
|
|
You should also have the connection.Open() and connection.Close() in the same code block. Between 2 method calls there can be a lot of things happening.
I am fighting against the Universe...
Reference-Rick Cook
|
|
|
|
|