Avatar billede simsen Mester
27. april 2007 - 12:32 Der er 20 kommentarer og
1 løsning

splitte tekst op til et array

Hej,

Det jeg har brug for, at at en tekst (fra tekstboks) bliver splittet ud i de ord der er hvor delingen skal ligge ved mellemrum.

De ord, jeg så får ud vil jeg have en i ny, hvor jeg så tilføjer noget (til databasen, så jeg går igennem alle ord, der bliver skrevet)

Jeg har følgende kode (som jeg har fundet i vb og forsøgt at oversætte til c#).....men den fejler ved Ubound (The name 'Ubound' does not exist in the current context)

Hvad skal jeg skrive istedet for i for løkken, så den tester på, om det er sidste ord i array'et, så den ikke skriver OR med....?

Koden:

protected void btnAdvancedSeek_Click(object sender, EventArgs e)
    {
        string tekst = txtIngredienser.Text;
       
        string strSQLstatementIngredienser = "";

        string[] a = tekst.Split(new char[] { ' ' });

        //a = tekst.Split(" ");

        for (int i = 0; i <= Ubound(a); i++)
        {
            if (i == Ubound(a))
            {
                strSQLstatementIngredienser += "Ingredienser=" + a(i);
            }
            else
            {
                strSQLstatementIngredienser += "Ingredienser=" + a(i) + " OR ";
            }
        }

    }

mvh
simsen :-)
Avatar billede mikkel_sommer Nybegynder
27. april 2007 - 12:41 #1
prøv:

a.Count
Avatar billede mikkel_sommer Nybegynder
27. april 2007 - 12:44 #2
sorry, skulle have været:

a.Length
Avatar billede mikkel_sommer Nybegynder
27. april 2007 - 13:05 #3
altså:

for (int i = 0; i < a.Length; i++)
{

}
Avatar billede simsen Mester
27. april 2007 - 19:04 #4
Hejsa Mikkel

Hvordan finder jeg så hvad der er højeste værdi.....

Den jeg jo skal spørge på, for at finde ud af, om der skal OR på eller ej i tekststrengen?

Der er jo nemlig ingen a.count

mvh
simsen :-)
Avatar billede erikjacobsen Ekspert
27. april 2007 - 19:12 #5
if (i == a.Length-1)
Avatar billede simsen Mester
27. april 2007 - 23:02 #6
Jeg går snart grassat.........

Jeg har følgende kode nu, og får en "Index was outside the bounds of the array" fejl.

Min kode:

protected void btnAdvancedSeek_Click(object sender, EventArgs e)
    {
        string tekst = txtIngredienser.Text;

        string strSQLstatementIngredienser = "";

        string[] a = tekst.Split(new char[] { ' ' });

            for (int i = 0; i <= a.Length; i++)
        {
            if (i == a.Length - 1)
            {
                strSQLstatementIngredienser += "Ingredienser=" + a[i -1] + " AND ";
               
            }
            else
            {
                strSQLstatementIngredienser += "Ingredienser=" + a[i -1];
            }
        }

        Label1.Text = strSQLstatementIngredienser.ToString();

        panAdvancedSearchPositive.Visible = true;
        panSeekAdvanced.Visible = true;
    }

Jeg har læst mig til på diverse sider på nettet, at det er fordi mine tal ikke stemmer overens......og jeg kan se, at det er i linierne:

strSQLstatementIngredienser += "Ingredienser=" + a[i -1] + " AND ";
strSQLstatementIngredienser += "Ingredienser=" + a[i -1];

Jeg kan  jo så gætte mig til, at det nok er i:

a[i -1]

det er galt....Det fordi, jeg slet og ret ikke aner, hvordan jeg får udskrevet tekst arrayets tekst felt....nogen der gider forklare mig det?

mvh
simsen :-)
Avatar billede erikjacobsen Ekspert
27. april 2007 - 23:29 #7
27/04-2007 13:05:35
Avatar billede erikjacobsen Ekspert
27. april 2007 - 23:30 #8
OG selvfølgelige bare: a[i]
Avatar billede simsen Mester
27. april 2007 - 23:42 #9
Hejsa erik,

Jeg har skrevet den fra kl. 13:05:35

Jeg har også forsøgt med
strSQLstatementIngredienser += "Ingredienser=" + a[i] + " AND ";'
og
strSQLstatementIngredienser += "Ingredienser=" + a[i];

men får stadig fejlen

Index was outside the bounds of the array
Line 198:                strSQLstatementIngredienser += "Ingredienser=" + a[i];

Så der må være et eller andet i koden, der ikke fungererer?

mvh
simsen :-)
Avatar billede erikjacobsen Ekspert
27. april 2007 - 23:50 #10
Vis den kode du har - de to ting skulle gøre det.
Avatar billede simsen Mester
27. april 2007 - 23:56 #11
protected void btnAdvancedSeek_Click(object sender, EventArgs e)
    {
        string tekst = txtIngredienser.Text;

        string strSQLstatementIngredienser = "";

        string[] a = tekst.Split(new char[] { ' ' });

            for (int i = 0; i <= a.Length; i++)
        {
            if (i == a.Length - 1)
            {
                strSQLstatementIngredienser += "Ingredienser=" + a[i] + " AND ";
               
            }
            else
            {
                strSQLstatementIngredienser += "Ingredienser=" + a[i];
            }
        }

        Label1.Text = strSQLstatementIngredienser.ToString();

        panAdvancedSearchPositive.Visible = true;
        panSeekAdvanced.Visible = true;
    }
Avatar billede erikjacobsen Ekspert
27. april 2007 - 23:57 #12
Du skal lige gøre som før sagt: 27/04-2007 13:05:35
Avatar billede simsen Mester
28. april 2007 - 00:00 #13
Hmmmmmmmm

Det HAR jeg da gjort - på linie 9?

Altså jeg skriver
for (int i = 0; i < a.Length; i++)
{
    if (i == a.Length - 1)
    osv
}

Eller skal jeg også gøre det et andet sted?

mvh
simsen :-)
Avatar billede erikjacobsen Ekspert
28. april 2007 - 00:01 #14
Den kode du viser har: <=
Men den kode jeg henviser til har: <
Avatar billede simsen Mester
28. april 2007 - 00:01 #15
hov ser lige nu - det har jeg jo ikke - jeg skriver <=

Gider du forklare mig hvorfor der ikke må stå =?

mvh
simsen :-)
Avatar billede erikjacobsen Ekspert
28. april 2007 - 00:03 #16
Fordi dit array går fra 0 til lenght-1
Avatar billede simsen Mester
28. april 2007 - 00:07 #17
Ok......selvfølgelig gør det det....tænker mig ikke om i dag *suk*

Så - nu tror jeg, jeg vil vente til i morgen, med at få teksten over i den funktion, der skal bruge det for at hente fra databasen.....

Jeg takker mange gange for hjælpen.

Smid et svar og du får dine velfortjente points :-)

mvh
simsen :-)
Avatar billede erikjacobsen Ekspert
28. april 2007 - 07:42 #18
Nej tak, jeg samler slet ikke på point, tak.
Avatar billede simsen Mester
28. april 2007 - 08:35 #19
Erik
Det er også rigtigt.....men buddet skal du have... Mikkel får dem i stedet så.

Jeg takker endnu engang

Mikkel
Smid et svar og du får dine points

mvh
simsen :-)
Avatar billede simsen Mester
09. maj 2007 - 19:23 #20
Lukker denne her - hvis du vil have pointsene på et tidspunkt Mikkel, så sig til :-)
Avatar billede mikkel_sommer Nybegynder
10. maj 2007 - 08:25 #21
Jamen jo tak (har været på ferie så derfor har jeg ikke svaret dig).
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester