Avatar billede testpilot_dk Nybegynder
20. juni 2006 - 10:58 Der er 10 kommentarer og
1 løsning

String arrays og deres respektive strenge

Et simpelt spørgsmål!

Jeg har et program som gennemløber en fil, den enkelte linje i filen, puttes i et array, den enkelte plads i arrayet bliver lavet til uppercase!

Men når jeg så vil skrive den oprindelige linje i en ny fil, så skriver med storer bogstaver. hvorfor=

using System;
using System.Data;
using System.IO;
namespace SearchCustomernames
{
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    class Class1
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        ///

        static StreamReader sr = null;
        static StreamWriter sw = null;
        static StreamWriter sw2 = null;
        static void Main(string[] args)
        {
//            Search(args[0].ToString(), args[1].ToString());
            Search(args[1].ToString(), args[2].ToString(), args[3].ToString());
        }

        static void Search(string names, string sales, string number)
        {
            sr = new StreamReader("BACKUP\\MCL\\My MCL Projects\\AH.DAT", System.Text.Encoding.Default);
            sw = new StreamWriter("BACKUP\\MCL\\My MCL Projects\\AR.DAT", true, System.Text.Encoding.Default);
            sw2 = new StreamWriter("BACKUP\\MCL\\My MCL Projects\\temp.DAT", true, System.Text.Encoding.Default);
            string str_tmp = "";

            string [] str_tmp2 = null;
            names = names.ToUpper();
            sales = sales.ToUpper();
            while((str_tmp = sr.ReadLine()) != null)
            {
                string str_tmp_clone = str_tmp.ToString();
                str_tmp2 = (string [])str_tmp_clone.Split(';');
                if(number == "1")
                {
                    str_tmp2[2] = str_tmp2[2].ToUpper();
                    str_tmp2[16] = str_tmp2[16].ToUpper();
                    sw2.WriteLine(str_tmp2[2] + ", " + names + ", " + sales);
                    if(str_tmp2[2].IndexOf(names, 0, names.Length) != -1 && str_tmp2[16].IndexOf(sales, 0, sales.Length) != -1)
                    {
                        sw.WriteLine(str_tmp);
                    }       
                }
                else
                {
                    str_tmp2[0] = str_tmp2[0].ToUpper();
                    str_tmp2[16] = str_tmp2[16].ToUpper();
                    sw2.WriteLine(str_tmp2[0] + ", " + names + ", " + sales);
                    if(str_tmp2[0].IndexOf(names, 0, names.Length) != -1 && str_tmp2[16].IndexOf(sales, 0, sales.Length) != -1)
                    {
                        sw.WriteLine(str_tmp);
                    }       
                }
            }
            sw2.Close();
            sw.Close();
            sr.Close();
        }
    }
}

Hvordan undgår jeg det ?
Avatar billede Syska Mester
20. juni 2006 - 11:02 #1
Det er vel som du selv siger fordi du laver det om til string.ToUpper();

Så bliver alle jo storebogstaver.....

Mener du kan lave en compare som ikke er case sensitive.....

// ouT
Avatar billede testpilot_dk Nybegynder
20. juni 2006 - 11:04 #2
hej!

Jeg har ikke mulighed for at benytte Compare!
Avatar billede Syska Mester
20. juni 2006 - 11:07 #3
string test1 = "superMAND";
            string test2 = "supermand";
            Console.WriteLine(String.Compare(test1, test2, true));

Sådan kan du sammenligne 2 stringe.... selvom der er store og små bogstaver, så er du fri for at konvetere din string fra filen, og du er ude over det problem.

// oUTa
Avatar billede Syska Mester
20. juni 2006 - 11:10 #4
Console.WriteLine(test1.IndexOf("mand", StringComparison.CurrentCultureIgnoreCase));

// ouT
Avatar billede mikkel_sommer Nybegynder
20. juni 2006 - 11:12 #5
Du kunne evt. køre ToLower() når du laver den nye fil:

sw.WriteLine(str_tmp.ToLower());
Avatar billede testpilot_dk Nybegynder
20. juni 2006 - 11:14 #6
Jeg ønsker også at kunne søge på kun halvdelen af et navn, det kan man da ikke med compare
Avatar billede testpilot_dk Nybegynder
20. juni 2006 - 11:17 #7
Det er på en PDA!

Derfor har jeg ikke mulighed for at benytte fancie metoder og funktioner
Avatar billede Syska Mester
20. juni 2006 - 11:31 #8
ahhh, måske en oplysning vi manglede.... hvad med noget Regex, ved ikke lige hvor meget de har strippet .NET CF

// ouT
Avatar billede Syska Mester
20. juni 2006 - 11:50 #9
Ifølge min lokal installation af MSDN, burde der være en Compare på din string class.

// ouT
Avatar billede testpilot_dk Nybegynder
18. juli 2006 - 10:09 #10
Send et svar buzzz,
Avatar billede testpilot_dk Nybegynder
20. juli 2006 - 11:29 #11
Jeg lukker Buzzz, send et meddelse og du får dine point
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