[ bau_bau @ 22.06.2010. 08:49 ] @
evo ako kome treba funkcija u C# za dobijanje broja iz string-a.

public static double ExtractBrojFromText(string Fraza)
{
int duzinaStringa, TrenutnaPoz;
string Temp = "";
duzinaStringa = Fraza.Length;

for (TrenutnaPoz = 1; TrenutnaPoz <= duzinaStringa; TrenutnaPoz++)
{
if (Mid(Fraza, TrenutnaPoz, 1) == "-")
Temp = Temp + Mid(Fraza,TrenutnaPoz,1);

if (Mid(Fraza,TrenutnaPoz, 1) == ".")
Temp = Temp + Mid(Fraza,TrenutnaPoz,1);

char ee = char.Parse(Mid(Fraza,TrenutnaPoz, 1));

if (Char.IsNumber(ee) == true)
Temp = Temp + Mid(Fraza, TrenutnaPoz, 1);
}

if (Temp.Length == 0)
return 0;
//Extract = 0;
else
//Extract = double.Parse(Temp);
return double.Parse(Temp);
}

public static string Mid(string s, int a, int b)
{
string temp = s.Substring(a - 1, b);
return temp;
}

-- nedostatak je sto ako string ima crticu, racunace kao negativan broj npr.
ExtractBrojFromText(asdasda-87.25) ce bit -87.25

[ Igor Gajic @ 22.06.2010. 08:57 ] @
Evo mog resenja:

Code (csharp):

            string input = "asdasda-87.25fsfdsf -23";
            Regex floatReg = new Regex(@"[-+]?[0-9]*\.?[0-9]+", RegexOptions.Compiled);
            MatchCollection matches = floatReg.Matches(input);

            foreach (Match match in matches)
            {
                if (match.Success)
                {
                    double res = double.Parse(match.Value);
                    Console.WriteLine(res);
                }
            }