Ynt: Stringden parça çekme

Başlatan Mucit23, 18 Şubat 2016, 23:58:47

Mucit23

Selamlar.

C# da string içerisinden bir parça çekmek istiyorum.

String içeriği aşağıdaki gibi

20:15:45 1485,2H

paket yukarıdaki gibi En başta zaman sabit bir şekilde sürekli var. 20:15:45 gibi 8 haneden oluşuyor arada bir boşluk karakterinde sonra almak istediğim karakterler başlıyor. En sonda ise Sürekli 'H' karakteri var. Bana boşluk karakteri ile H karakteri arasındaki string parça lazım.

Stringin genişliği sabit olsa Substring fonksiyonu işimi görecek ama paket aşağıdaki gibi olabiliyor.

22:10:22 12,5H

Bu durumda substring işime yaramıyor.

Normal C de strtok fonksiyonu olduğunu biliyorum. Boşluk ile H karakteri arasındaki string parçayı almak için strtok kullanabileceğimi düşündüm ama C de bu fonksiyon yerine split var ama kullanamadım.

            string yazi = "12:15:45 28,4H";
            string []temp1 = yazi.Split(new char[2] {' ', 'H'});

Kullanım şekli yukarıdaki gibi hata vermiyor ama temp1 değerini yazdıramıyorum. Doğru kullanım nasıl olmalı? Bu işin daha kolay bir yolu var mı?

mesaj birleştirme:: 18 Şubat 2016, 23:17:08

Ekleme: basitçe bir döngüyle hallettim.

            string yazi = "12:15:45 28,4H";
            int index=9;

            while (yazi[index] != 'H')
            {
                temp += yazi [index];
                index++;
            }

muhittin_kaplan


muhittin_kaplan

Neden substring isine yaramiyor

Mucit23

Abi genişlik sabit değilki

Sayı 12.4 olacağı gibi 1254.5 de olabiliyor. Bu yüzden aradan parça çekmem lazım diye düşündüm.

muhittin_kaplan

Once boslugu bul sonra h i bul aradan cek al

Mucit23

Boşluğun yeri sabit abi H yi bulmak yeteriydi :)

muhittin_kaplan


vitruvius

Aşağıdaki gibi bir şey kullanabilirsin. Boşluğun yeri sabit olmasa da sıkıntı olmaz.

using System.IO;
using System;

class Program
{
    static string trimAString(string input, string beginning, string end)
    {
        int posBeg = input.IndexOf(beginning) + 1; 
        int posEnd = input.IndexOf(end); 
        string result = input.Substring(posBeg , posEnd - posBeg);
        return result;
    }

    static void Main()
    {
        string yazi = "12:15:45 1234,56H";
        Console.WriteLine(trimAString(yazi, " ", "H"));
    }
}


Çıktısı:
Alıntı Yap1234,56