Avatar billede glenn007 Nybegynder
10. december 2008 - 19:40 Der er 8 kommentarer og
1 løsning

sortere sætning

Hejsa,

hvordan kan man dele denne linie op    {X=756,Y=304}    så man kun har de to tal i hver sin variabel.

Det eneste jeg har snuset mig frem til at man kan gøre er at benytte pointerer.

Haqr en et eksempel på det liggende jeg kan studere nærmere.
Avatar billede kalp Novice
10. december 2008 - 19:43 #1
Point point = new Point();
point.X = 756;
point.Y = 304;
Avatar billede kalp Novice
10. december 2008 - 19:44 #2
Du kan også sende dem direkte i konstruktøren.

ja.. ved ikke hvad mere du har brug for:)
Det var et eksempel;)
Avatar billede kalp Novice
10. december 2008 - 19:51 #3
hvis det er en consol app kan oprette denne structure og så vil ovenstående stadig fungere.

public struct Point {
            public int x;
            public int y;
            public Point(int _x, int _y) {
                x = _x;
                y = _y;
            }
            public int X {
                get { return x; }
                set { x = value; }
            }
            public int Y {
                get { return y; }
                set { y = value; }
            }
        }
Avatar billede fun22 Nybegynder
10. december 2008 - 19:52 #4
Måske.. Det er oversat fra vb så der kan være fejl..

string myX = null;
    string myY = null;
    string myString = "{X=756,Y=304}";
    Array myArray = default(Array);
    string myTmp1 = null;
    string myTmp2 = null;
   
    myArray = myString.Split(",");
   
    myTmp1 = myArray(0);
    myTmp2 = myArray(1);
   
    if (myTmp1.Contains("X")) {
        myX = myTmp1.Remove(0, 3);
    }
    if (myTmp2.Contains("Y")) {
        myY = myTmp2.Remove(0, 2);
        myY = myY.Replace("}", "");
    }
   
    Interaction.MsgBox(myX);
    Interaction.MsgBox(myY);
Avatar billede kalp Novice
10. december 2008 - 20:12 #5
ahh.. misforstod at du havde et problem med at få det ud af den string.


            string text = @"([xX]=){1}\d{0,100}";
            Regex regexp = new Regex(text);
            int x = int.Parse(regexp.Match("{X=756,Y=304}").Value.Split('=')[1]);
            regexp = new Regex(text);
            int y = int.Parse(regexp.Match("{X=756,Y=304}").Value.Split('=')[1]);
            Point point = new Point(x, y);


ja.. fejlhåndtering skal man nok lige have i mente:P
Avatar billede kalp Novice
10. december 2008 - 20:13 #6
oops.. sådan:

  string text = @"{X=756,Y=304}";
            Regex regexp = new Regex(@"([xX]=){1}\d{0,100}");
            int x = int.Parse(regexp.Match(text).Value.Split('=')[1]);
            regexp = new Regex(@"([yY]=){1}\d{0,100}");
            int y = int.Parse(regexp.Match(text).Value.Split('=')[1]);
            Point point = new Point(x, y);
Avatar billede arne_v Ekspert
10. december 2008 - 20:23 #7
Jeg ville lave regex'en som:

using System;
using System.Text.RegularExpressions;

namespace E
{
    public class Program
    {
        public static void Main(string[] args)
        {
            string text = "{X=756,Y=304}";
            Regex re = new Regex(@"(?:{X=)(?<X>\d+)(?:,Y=)(?<Y>\d+)(?:})", RegexOptions.IgnoreCase);
            Match m = re.Match(text);
            Console.WriteLine("X=" + m.Groups["X"].Value + " Y=" + m.Groups["Y"].Value);
            Console.ReadKey();
        }
    }
}
Avatar billede glenn007 Nybegynder
10. december 2008 - 20:50 #8
hold da op i ruler med talenterne her *G*

jeg har adopteret KALP´s forslag da det er lidt mere simpelt. Men hvad der er mest korrekt / effektiuvt kan jeg ikke med min erfaring vurdere. Det kræver nok en masse benchmark og stress test af sådan en funktion.

MANGE tak for de gode svar. nu der grundlag for nærmere studie og øvelse
Avatar billede kalp Novice
10. december 2008 - 21:57 #9
=)
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