Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как вытащить подстроку? / 25 сообщений из 25, страница 1 из 1
13.01.2003, 11:47
    #32089461
Cooper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вытащить подстроку?
Приветствую.

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

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

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

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

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

caption:=t.Strings[0];
end;
...
Рейтинг: 0 / 0
13.01.2003, 12:12
    #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
13.01.2003, 12:39
    #32089511
NightSpider
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вытащить подстроку?
Маленькая, но красивая. :-) Мне уже нравится
...
Рейтинг: 0 / 0
14.01.2003, 12:42
    #32090175
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вытащить подстроку?
Есть в инете полезнейшая библиотека HYPERSTRING
2 простых *.Pas файла. Там около 150 полезных функций.
в т.ч. для работы с токенами т.е. текстовыми последовательностями
элементов.
Вообще одна из найлучших подборок функций для Делфи.
Правда возможна проблема с компиляцией :-) в Д5 из-за
некоторой несовместимости типов cardinal
Не помню точно, но надо в точке с ошибкой поменять на тип int и
все заработает.
...
Рейтинг: 0 / 0
14.01.2003, 12:46
    #32090181
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вытащить подстроку?
А ваще - лучше самому напИсать ))).
...
Рейтинг: 0 / 0
14.01.2003, 15:21
    #32090399
Alex Alexeev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вытащить подстроку?
Удобнее конечно готовые библиотеки использовать, но когда нужно быстро сделать, бывает проще накидать самому чем тратить время на поиск по библиотекам (если конечно не знаешь точно где смотреть).
...
Рейтинг: 0 / 0
14.01.2003, 15:24
    #32090401
Cooper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вытащить подстроку?
Всем спасибо.
...
Рейтинг: 0 / 0
14.01.2003, 15:25
    #32090402
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вытащить подстроку?
> Alex Alexeev
а на х..? - если как программер ламо - тады юзай готовое ... там кода та максимум 5 строк на функцию)))
...
Рейтинг: 0 / 0
14.01.2003, 16:11
    #32090476
Alex Alexeev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вытащить подстроку?
2KirilovA
Да так оно конечно ...
Но с другой стороны повторное использование кода не есть признак ламо, а использование библиотек это и есть повторное использование кода.
В конце концов накидаешь ты пару десятков таких функций сам между делом, потом вынесешь их в отдельный юнит чтобы удобнее было использовать в разных приложениях и в результате получишь-таки библиотеку
...
Рейтинг: 0 / 0
14.01.2003, 16:53
    #32090511
mahoune
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вытащить подстроку?
А по сути самого топика, в Delphi нет регулярных выражений? А?
...
Рейтинг: 0 / 0
14.01.2003, 16:54
    #32090513
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вытащить подстроку?
> Alex Alexeev
Я не говорю что надо идиотски копировать сырники во всех местах - лучше написать свое .... и под себя чем кемпериться в чужих сорцах ....
...
Рейтинг: 0 / 0
14.01.2003, 17:00
    #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
14.01.2003, 17:03
    #32090527
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вытащить подстроку?
только в твоём случае ещё пробелы надо поубирать, а то если писать
StrToInt(MidStr('12 1 6 456 3 6',3,1)), то будет error, по скольку сейчас там пробел.
...
Рейтинг: 0 / 0
14.01.2003, 17:04
    #32090534
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вытащить подстроку?
функция Copy кстати делает тоже самое.
...
Рейтинг: 0 / 0
14.01.2003, 17:05
    #32090537
Cooper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вытащить подстроку?
Не энто не подходит. Мне нужен именно поиск. Яж не знаю с каког места начинается подстрока. Просто есть разделитель (к примеру пробел).
...
Рейтинг: 0 / 0
14.01.2003, 17:07
    #32090539
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вытащить подстроку?
нет, такое надо самому писать.
но это ж просто...
...
Рейтинг: 0 / 0
14.01.2003, 17:14
    #32090556
Cooper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вытащить подстроку?
Да я знаю что просто. Давно сделал.

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

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

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

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

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


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