2015-07-20 7 views
-1

В C# Я хочу получить несколько значений из одного текстового поля. Я хочу разработать приложение, которое преобразует географические координаты из широты и долготы в другую систему проецирования. Например: пользователь вводит следующую координату 41 ° 24'12.2 "Н. Программное обеспечение будет разделено и будет присвоено значение a = 41; b = 24; c = 12,2; я упоминаю, что b может быть от 01 до 59 и может быть запись в двух вариантах выбора пользователем, например: 41 ° 05'12.2 "N. или 41 ° 5'12.2" N.C# Несколько значений из одного текстового поля

Спасибо

+2

Добро пожаловать в Переполнение стека. Это не очень хороший способ задать вопрос здесь. Вы попробовали что-нибудь до сих пор, чтобы решить вашу проблему? Покажите свои усилия, чтобы люди могли показать их. Пожалуйста, прочитайте [Как спросить] (http://stackoverflow.com/help/how-to-ask) и [справочный центр] (http://stackoverflow.com/help) как начало .. –

+0

Как вы думаете ваши пользователи будут вводить символы °, "и" в одном текстовом поле? В любом случае вы можете легко проанализировать ввод текстового поля с помощью [RegExp] (https://msdn.microsoft.com/en-us/library/ae5bf541 (v = vs.90) .aspx) – Szer

+0

Пользователь скопирует координату из Google Earth с помощью ctrl + c и вставляет в текстовое поле. –

ответ

2

Пожалуйста, прочитайте больше о String.substring и String.indexOf метода. Для более общего вида для метода расширения в C#.

Здесь у вас есть это: https://dotnetfiddle.net/J66V5a

0

вы можете использовать текст текстового поля для анализа данных, но убедитесь, что вы фильтровать входную строку, как в:

if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != ':'|| e.KeyChar != '"' || e.KeyChar != '°' || e.KeyChar != ''') 
{ 
     e.Handled = true; 
} 

Используйте символы в качестве разделителей и разбить строку на 3:

string ss = "41°24'12.2" + '"' + "N"; 
    string[] values = new string[3]; 
    char[] separators = new char[3] { '°',Convert.ToChar(0x27),Convert.ToChar(0x22)}; 

    values = ss.Split(separators); 

Значения, которые вам нужно в первых 3 блоках «значение» массив в виде строк. Используйте класс преобразования (int a = Convert.ToInt32(values[0]);) для обработки данных.