Avatar billede nic84 Nybegynder
06. juni 2008 - 14:19 Der er 10 kommentarer og
1 løsning

karakterer fra en label til en anden label

Hey

Jeg er ved at lave min egen regnemaskine i C# og i den forbindelse har jeg et lille problem.
Jeg har en label hvor jeg skriver hele mit regnestykke i f.eks. 45+76/2+63. Nu vil jeg så gerne have overført de karakterer efter sidste operatortegn til en anden label.
Hvordan gør jeg det???
Avatar billede nielle Nybegynder
06. juni 2008 - 18:42 #1
Sådan?

            string regnestykke = this.label1.Text;

            char[] operatorTegn = { '+', '-', '*', '/' };
            string[] led = regnestykke.Split(operatorTegn);
            string sidsteLed = led.Last();

            this.label2.Text = sidsteLed;
Avatar billede nic84 Nybegynder
07. juni 2008 - 01:17 #2
OK, mange tak det vil jeg prøve i morgen.
Avatar billede nic84 Nybegynder
09. juni 2008 - 08:36 #3
Når jeg prøver din løsning får jeg denne fejl:

'System.Array' does not contain a definition for 'Last' and no extension method 'Last' accepting a first argument of type 'System.Array' could be found (are you missing a using directive or an assembly reference?)

Jeg har desuden fundet ud af at det operatortegn der skal skilles ved er '^', jeg ved ikke om det gør en forskel???
Avatar billede nielle Nybegynder
09. juni 2008 - 12:55 #4
Det lyder som om du koder til NET 2.0, og ikke 3.5 som min kode udnytter.

Det er ikke noget stort problem; Løsningen kan også laves til det, men bliver bare lidt mindre elegant:

            char[] operatorTegn = { '+', '-', '*', '/', '^' };
            string[] led = regnestykke.Split(operatorTegn);
            string sidsteLed = led[led.Length-1];

            this.label2.Text = sidsteLed;
Avatar billede nic84 Nybegynder
09. juni 2008 - 13:12 #5
Dejligt nu virker det :-)

kan nu ikke forstå det med at det er NET 2.0 jeg koder til da jeg sidder og programmerer i VS 2008.

Men det vigtigste er at det virker. Så smid et svar så får du nogle point.

Takker :-)
Avatar billede nic84 Nybegynder
09. juni 2008 - 13:15 #6
PS. Hvis du ved det, hvor er det så lige jeg går ind og tjekker hvad det er for en version af .NET jeg koder til.
Det er nemlig et projekt jeg startede i VS 2005, men nu koder videre på i VS 2008. Så det er jo nok grunden til at jeg koder til NET 2.0 lige nu.
Avatar billede nic84 Nybegynder
09. juni 2008 - 13:34 #7
Har lige selv fundet ud af hvordan man skifter til at kode til 3.5, men det ændrer ikke på at dit første eksempel stadigvæk fejler.

Men jeg accepterer stadig dit andet eksempel.

Så du kan bare stadig smide et svar så skal jeg nok give dig pointene.
Avatar billede nielle Nybegynder
09. juni 2008 - 13:38 #8
Måske mangler du bare at inkluderer LINQ namespacet for at den første også fungere hos dig.
Avatar billede nic84 Nybegynder
09. juni 2008 - 13:43 #9
Hvordan gør jeg det?
Avatar billede nic84 Nybegynder
09. juni 2008 - 13:46 #10
Nå fandt ud af det. Det var jo bare using System.Linq

Men den var der ikke før.

Tusind tak for hjælpen. :-)
Avatar billede nielle Nybegynder
09. juni 2008 - 14:10 #11
Nej, den var der ikke før fordi at du er opgraderet fra et 2.0 projekt til 3.5.

Hvis du havde startet som et 3.5 projekt ville der være inkluderet 2 LINQ namespaces fra starten af.
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