Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Первая буква каждой строки / 12 сообщений из 12, страница 1 из 1
25.08.2017, 10:01:50
    #39510262
грут
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первая буква каждой строки
Идет привязка к карте,загружаю список из txt файла в listbox. С загрузкой списка опорных точек в listbox проблем нет,но теперь для сортировки хочу вытащить из него первую букву каждой строки и так чтобы без повторов. Как это сделать,не подскажите?
...
Рейтинг: 0 / 0
25.08.2017, 10:05:24
    #39510263
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первая буква каждой строки
грут,

С первым символом легко - либо по индексу либо через Copy(). А что ты имеешь в виду под "без повторов"?
...
Рейтинг: 0 / 0
25.08.2017, 10:16:13
    #39510272
FoxJr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первая буква каждой строки
Попробуй использовать TStringList, на вскидку
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
  Var
    Indexes: TStringList;
...
  Indexes := TStringList.Create;

  procedure AddChar(aSource: String); //Можно Char
  begin
    if Indexes.IndexOf(aSource) = -1 then //Если не найдено
      Indexes.Add(aSource);
  end;

  MyList.Sort;



В итоге у тебя будет список Indexes, сортированный по алфавиту.
...
Рейтинг: 0 / 0
25.08.2017, 10:18:38
    #39510275
FoxJr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первая буква каждой строки
p.s.
забыл написать, да можно использовать Copy либо первый индекс
Код: pascal
1.
2.
3.
   For Idx := 0 to aListBox.Items.Count - 1 do
     if Trim(aListBox.Items[Idx])<>'' then
       AddChar(aListBox.Items[Idx][1]);
...
Рейтинг: 0 / 0
25.08.2017, 10:21:23
    #39510277
goldmi45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первая буква каждой строки
FoxJr,

Код: pascal
1.
Indexes.Duplicates := dupIgnore
...
Рейтинг: 0 / 0
25.08.2017, 10:23:33
    #39510280
FoxJr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первая буква каждой строки
goldmi45,

Да, забыл сорри.
...
Рейтинг: 0 / 0
25.08.2017, 10:53:45
    #39510308
Грут
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первая буква каждой строки
>> А что ты имеешь в виду под "без повторов"?

.....
Новокузнецк
Новокуйбышевск
.....

Из этого нужна одна первая буква <Н>,а не две.






FoxJr и goldmi45 - спасибо за подсказку, но как это использовать?
...
Рейтинг: 0 / 0
25.08.2017, 13:18:28
    #39510454
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первая буква каждой строки
Грут,

А скажи подробнее, что у тебя на входе? Город + координаты? Тогда тебе нужно что-то вроде дерева (классический TreeView) скорее всего. Или можно сделать структуру в виде (например) - массива из начальных букв, где каждый элемент массива будет списком из городов, начинающихся на букву + их координаты. Тебе это нужно для чего?
...
Рейтинг: 0 / 0
25.08.2017, 13:23:58
    #39510457
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первая буква каждой строки
имхо, тут программист нужен. (С)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25.08.2017, 13:48:07
    #39510499
FoxJr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первая буква каждой строки
Грут>> А что ты имеешь в виду под "без повторов"?

.....
Новокузнецк
Новокуйбышевск
.....

Из этого нужна одна первая буква <Н>,а не две.






FoxJr и goldmi45 - спасибо за подсказку, но как это использовать?

Гм... ну у тебя будет переменная Indexes в которой после всех манипуляций появится список первых букв из твоего списка ListBox, а как ты их будешь использовать только ты знаешь.
Для доступа к этим буквам можешь воспользоваться циклом
Код: pascal
1.
2.
3.
4.
5.
  For Idx := 0 to Indexes.count - 1 do
  beign
    //Доступ к каждому элементу Indexes[Idx], например
    ShowMessage(Indexes[Idx]);
  end;



Данный код пройдет по всем найденным первым буквам и выведет их тебе в виде диалогового окна (по одной)
...
Рейтинг: 0 / 0
25.08.2017, 14:22:34
    #39510531
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первая буква каждой строки
FoxJrу тебя будет переменная Indexes в которой после всех манипуляций появится список первых букв из твоего списка ListBox, а как ты их будешь использовать только ты знаешь.


Пока уважаемый ТС не поделится идеями о применении своих "первых букв без повторений" - склоняюсь к словам Мимопроходящего. Данные должны обрабатываться с какой-то целью.
...
Рейтинг: 0 / 0
25.08.2017, 15:18:39
    #39510586
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первая буква каждой строки
грутИдет привязка к карте,загружаю список из txt файла в listbox. С загрузкой списка опорных точек в listbox проблем нет,но теперь для сортировки хочу вытащить из него первую букву каждой строки и так чтобы без повторов. Как это сделать,не подскажите?
...
Читайте классику - художественную, программистскую, математическую ... - научитесь четко формулировать задачу, а не смутные желания.
...
Например:Подскажите, пожалуйста.
В TListBox находится список строк. Необходимо получить список уникальных значений символов, с которых начинается каждая строка исходного списка из TListBox.
Символы в выходном списке должны быть преобразованы в прописные, выходной список должен быть отсортирован в порядке возрастания значения кода символов.

Пример входных данных и результата работы:
Исходные данныеЯщерица
арлекин
Кузьма
ящик
Арбуз
Результата
к
я
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Первая буква каждой строки / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]