Avatar billede km2 Nybegynder
10. maj 2009 - 16:01 Der er 7 kommentarer og
1 løsning

Hvordan skrives disse VisualBasic stumper kode i C#? - Hjælp!!!

Jeg har noget VB kode som jeg gerne vil skrive om til C#. Er der nogen der ved hvordan man gør det i C#?

Her er stumperne:

If CmOpen.FileName <> "" Then

og

string st;
int position;
FileOpen(filnum, CmOpen.FileName, OpenMode.Input)
I = 0

        Do While Not EOF(filnumber)
        st = LineInput(filnumber)
    If InStr(1, st, "=") Then
    position = InStr(1, st, "=")
    st = Mid(st, position + 1)
    End If
        End loop

FileOpen har jeg ikke problemer med for jeg bruger StreamReader men det er koden i Do While Not løkken jeg gerne vil have hjælp til.
Avatar billede sirius Nybegynder
10. maj 2009 - 18:04 #1
kender ikke så meget til VB er funktionerne InStr, Mid, EOF og LineInput standard funktioner eller nogen du selv har lavet ?

tror det ville være nemmere at skrive C# koden hvis du forklarer hvad den skal

/jacob
Avatar billede arne_v Ekspert
10. maj 2009 - 18:09 #2
if CmOpen.FileName <> "" Then

->

if(CmOpen.FileName != "") {
Avatar billede arne_v Ekspert
10. maj 2009 - 18:12 #3
string st;
int position;
FileOpen(filnum, CmOpen.FileName, OpenMode.Input)
I = 0

        Do While Not EOF(filnumber)
        st = LineInput(filnumber)
    If InStr(1, st, "=") Then
    position = InStr(1, st, "=")
    st = Mid(st, position + 1)
    End If
        End loop

->

StreamReader sr = new StreamReader(CmOpen.FileName);
string st;
int position;
while((st = sr.ReadLine()) != null)
{
    position = st.IndexOf('=');
    if(position >= 0)
    {
        st = st.SUbstring(position + 1);
    }
}

[ikke testet, men du skulle få ideen]
Avatar billede km2 Nybegynder
10. maj 2009 - 19:27 #4
Tak for svaret, det var lige det som koden skulle gøre. Det er meningen at jeg med en load layout knap kan hente de indstillinger som jeg sidste gang foretog i min applikation fra en tekstfil. Lige nu med det kode som du omskrev henter knappen det hele fra filen. Den skal bare hente den tekst som jeg har skrevet i mine tekstbokse. Kan du se hvad der mangler? Der er 64 tekstbokse i alt. Se formatet fra tekstfilen nedenfor.

FileStream file = new FileStream(cmOpen.FileName, FileMode.Open, FileAccess.Read);
            StreamReader sr = new StreamReader(cmOpen.FileName);
           
            string st;
            int i = 0;
            if (cmOpen.FileName != "")
            {
                while ((st = sr.ReadLine()) != null)
                {

                    position = st.IndexOf('=');
                    if (position > 0)
                    {
                        st = st.Substring(position + 1);
                    }
                    textbox[i].Text = st;
                    i = i + 1;
                    if (i == 64)
                    {
                        break;
                    }


                }
            }

Her er formatet i tekstfilen:

0 = Text0
Microsoft Sans Serif
8,25
False
False
-2147483640


1 = Text2
Microsoft Sans Serif
8,25
False
False
-2147483640

og det fortsætter til 63 = Text1. Jeg er interesseret i kun at hente Text1 og Text2 og indtil Text63 ind i mit program igen. Kan man det?
Avatar billede arne_v Ekspert
10. maj 2009 - 20:46 #5
Du kan vel ignorere dem du ikke skal bruge.

Hvis der altid er 64 i filen kunne du overveje at bruge en for løkke fremfor en while løkke.
Avatar billede km2 Nybegynder
10. maj 2009 - 22:27 #6
Tak for al hjælpen idag.
Avatar billede km2 Nybegynder
10. maj 2009 - 22:29 #7
Hvordan tildeler man point når man har fået svar på sine spørgsmål?
Avatar billede arne_v Ekspert
10. maj 2009 - 22:45 #8
svarer skal lægge et svar først !
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