powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как вытащить подстроку?
25 сообщений из 25, страница 1 из 1
Как вытащить подстроку?
    #32089461
Фотография Cooper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую.

Дурацкий вопрос:

Есть строка, в которой находятся числа, разделенные пробелом.
Например: "12 1 6 456 3 6"

Подскажите как вытащить число, к примеру третье.

Спасибо.
...
Рейтинг: 0 / 0
Как вытащить подстроку?
    #32089475
Фотография Ден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно так, но я не уверен, что это лучшее решение

var
t: tStrings;
begin
t:=tstringlist.Create;
t.Delimiter:=' ';
t.DelimitedText :='ddd ffff sss';

caption:=t.Strings[0];
end;
...
Рейтинг: 0 / 0
Как вытащить подстроку?
    #32089480
Alex Alexeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно какую-нить функцию накидать, типа:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
function Substr1(S:String; Comma:Char; N:Integer):String;
  var i,p:Integer;
begin
  Result := '';
  i :=  1 ;
  p := pos(Comma, S);
  while (p >  0 ) and
        (i < N) do
  begin
    Delete(S, p,  1 );
    Inc(i);
    if (i < N) then p := pos(Comma, S);
  end;
  if p >  0  then Result := Copy(S, p, pos(Comma, S+Comma)-p);
end;
...
Рейтинг: 0 / 0
Как вытащить подстроку?
    #32089511
NightSpider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маленькая, но красивая. :-) Мне уже нравится
...
Рейтинг: 0 / 0
Как вытащить подстроку?
    #32090175
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть в инете полезнейшая библиотека HYPERSTRING
2 простых *.Pas файла. Там около 150 полезных функций.
в т.ч. для работы с токенами т.е. текстовыми последовательностями
элементов.
Вообще одна из найлучших подборок функций для Делфи.
Правда возможна проблема с компиляцией :-) в Д5 из-за
некоторой несовместимости типов cardinal
Не помню точно, но надо в точке с ошибкой поменять на тип int и
все заработает.
...
Рейтинг: 0 / 0
Как вытащить подстроку?
    #32090181
Фотография KirillovA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ваще - лучше самому напИсать ))).
...
Рейтинг: 0 / 0
Как вытащить подстроку?
    #32090399
Alex Alexeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Удобнее конечно готовые библиотеки использовать, но когда нужно быстро сделать, бывает проще накидать самому чем тратить время на поиск по библиотекам (если конечно не знаешь точно где смотреть).
...
Рейтинг: 0 / 0
Как вытащить подстроку?
    #32090401
Фотография Cooper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо.
...
Рейтинг: 0 / 0
Как вытащить подстроку?
    #32090402
Фотография KirillovA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Alex Alexeev
а на х..? - если как программер ламо - тады юзай готовое ... там кода та максимум 5 строк на функцию)))
...
Рейтинг: 0 / 0
Как вытащить подстроку?
    #32090476
Alex Alexeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2KirilovA
Да так оно конечно ...
Но с другой стороны повторное использование кода не есть признак ламо, а использование библиотек это и есть повторное использование кода.
В конце концов накидаешь ты пару десятков таких функций сам между делом, потом вынесешь их в отдельный юнит чтобы удобнее было использовать в разных приложениях и в результате получишь-таки библиотеку
...
Рейтинг: 0 / 0
Как вытащить подстроку?
    #32090511
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А по сути самого топика, в Delphi нет регулярных выражений? А?
...
Рейтинг: 0 / 0
Как вытащить подстроку?
    #32090513
Фотография KirillovA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Alex Alexeev
Я не говорю что надо идиотски копировать сырники во всех местах - лучше написать свое .... и под себя чем кемпериться в чужих сорцах ....
...
Рейтинг: 0 / 0
Как вытащить подстроку?
    #32090524
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
MidStr('12 1 6 456 3 6', 3 , 1 )



Returns the substring of a specified length that appears at a specified position in a string.

Unit StrUtils

Category string handling routines

function MidStr(const AText: string; const AStart, ACount: Integer): string;

Description
MidStr returns a substring Count characters at AText[AStart]. It is identical to the Copy function when it is called with a string as the first parameter, and is provided primarily for familiarity to programmers who are familiar with Visual Basic.

If AStart is larger than the length of AText, MidStr returns an empty string.

If Count specifies more characters than are available, only the characters from AText[AStart] to the end of AText are returned.
...
Рейтинг: 0 / 0
Как вытащить подстроку?
    #32090527
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
только в твоём случае ещё пробелы надо поубирать, а то если писать
StrToInt(MidStr('12 1 6 456 3 6',3,1)), то будет error, по скольку сейчас там пробел.
...
Рейтинг: 0 / 0
Как вытащить подстроку?
    #32090534
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
функция Copy кстати делает тоже самое.
...
Рейтинг: 0 / 0
Как вытащить подстроку?
    #32090537
Фотография Cooper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не энто не подходит. Мне нужен именно поиск. Яж не знаю с каког места начинается подстрока. Просто есть разделитель (к примеру пробел).
...
Рейтинг: 0 / 0
Как вытащить подстроку?
    #32090539
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет, такое надо самому писать.
но это ж просто...
...
Рейтинг: 0 / 0
Как вытащить подстроку?
    #32090556
Фотография Cooper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да я знаю что просто. Давно сделал.

P.S. Хотелось обойтись какой-нить стандартной функцией.
...
Рейтинг: 0 / 0
Как вытащить подстроку?
    #32090557
Фотография KirillovA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот ж.па - ну блин давайте теперь кемперить вопрос по поводу строк
... не забудьте как их проходить в цикле ... потом напишите еще правила использования for'а... и еще время потратьте .издельники
...
Рейтинг: 0 / 0
Как вытащить подстроку?
    #32090561
Фотография Cooper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тебя опять клинить начинает.

Срочно укольчик пациенту.
...
Рейтинг: 0 / 0
Как вытащить подстроку?
    #32090564
Фотография KirillovA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Cooper )))
...
Рейтинг: 0 / 0
Как вытащить подстроку?
    #32090631
Фотография cyc10ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>А по сути самого топика, в Delphi нет регулярных выражений? А?
нету нету, и препроцессор у них буээээ (;
...
Рейтинг: 0 / 0
Как вытащить подстроку?
    #32090713
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Cooper:

этому пациенту укольчик не поможет...

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

И ВООБЩЕ: ХОЧЕТСЯ ПОСТЕБАТЬСЯ - В ТРЁП!!!
...
Рейтинг: 0 / 0
Как вытащить подстроку?
    #32090934
Фотография Ден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во палемику развели -)) Объект tStrings специально создан для работы со строками, там есть все -))
...
Рейтинг: 0 / 0
Как вытащить подстроку?
    #32092147
Фотография shane54
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТоваГищи есть еще функция isDelimiter...
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как вытащить подстроку?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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