Вниз
Скачать: CL | DM;

вытащить из строки определенные данные. как?   Найти похожие ветки 

← →
Sandman   (2009-02-25 16:22) [0]

так. Имеется много строк такого формата.
01.02.2007 14:50:45

Но так же попадаются и 01.02.2007 9:50:45

Нужно именно вытащить из "Времени" минуты. то есть эту цифру 50.
Думал вытащить типо r[15]+r[16] но как я уже говорил в строках иногда разнятся колво символов.
Как еще можно сделать?


← →
Palladin ©   (2009-02-25 16:25) [1]

1. Изучить базовые функции Паскаля, предназначенные для работы со строками
2. Применить голова
3. Написать нужный код


← →
Медвежонок Пятачок ©   (2009-02-25 16:29) [2]

Думал вытащить типо r[15]+r[16] но как я уже говорил в строках иногда разнятся колво символов.

посмотреть что за символ там лежит и сделать if then else


← →
Ega23 ©   (2009-02-25 16:32) [3]

if (r[16]==":") {
 return r[14] + r[15];
} else {
 return r[15] + r[16];
}


← →
Сергей М. ©   (2009-02-25 16:33) [4]


> то есть эту цифру 50.


1. 50 - это не цифра, а число.
2. Это число всегда представлено двумя последними непробельными символами в строке, вне зависимо от длины строки.

Ни на какие мысли не наводит это ?)


← →
Denis__ ©   (2009-02-25 16:58) [5]


> 2. Это число всегда представлено двумя последними непробельными
> символами в строке, вне зависимо от длины строки.

Последние - это секунды получатся:)


← →
Сергей М. ©   (2009-02-25 17:02) [6]

Тьфу ..
Ну не суть как важно)
Минуты всегда на 3-й и 4-й позиции с конца в отрайттримленной строке)


← →
Юрий Зотов ©   (2009-02-25 17:05) [7]

> Sandman   (25.02.09 16:22)

Подстрока между первым и вторым двоеточиями - это то, что Вам нужно.

В справке Вы найдете функции Pos, Delete и Copy. Остальное должны придумать и сделать сами. Если не получится - меняйте занятие.


← →
NieL ©   (2009-02-25 17:39) [8]

Все намного проще:


implementation

uses DateUtils;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

 function GetMinute(s: string): Integer;
 begin
   Result := MinuteOf(StrToDateTime(s));
 end;

begin
 ShowMessageFmt("%d", [GetMinute("01.02.2007 14:50:45")]);
 ShowMessageFmt("%d", [GetMinute("01.02.2007 9:50:45")]);
end;


← →
Юрий Зотов ©   (2009-02-25 17:42) [9]

> NieL ©   (25.02.09 17:39) [8]

Что будет, если запустить под английской локализацией системы?


← →
NieL ©   (2009-02-25 17:56) [10]


> Что будет, если запустить под английской локализацией системы?


А где ты видишь дату в формате под английскую локализацию?
Автор явно указал:

> Имеется много строк такого формата.01.02.2007 14:50:45


← →
Palladin ©   (2009-02-25 18:01) [11]


> NieL ©   (25.02.09 17:56) [10]

1. Еще не дорос до тыкания.
2. Кто сказал даты сформированны именно на этой машине и именно с локацией этой машины?


← →
Юрий Зотов ©   (2009-02-25 21:08) [12]

> NieL ©   (25.02.09 17:56) [10]

В том-то и дело, что в исходной строке локализация русская, а парситься она должна на машине с ЛЮБОЙ локализацией. Поэтому StrToDate может "в лоб" и не прокатить, сначала формат выставить нужно (если еще можно).


← →
Юрий Зотов ©   (2009-02-25 21:11) [13]

> NieL ©   (25.02.09 17:56) [10]

И по той же причине, если ТОЧНО известно, что в исходной строке разделитель времени ВСЕГДА двоеточие, то проще не заморачиваться с форматами, а использовать Pos-Delete-Pos-Copy.


← →
MsGuns ©   (2009-02-25 22:07) [14]

Тень от безвозвратно утерянного телепатора шепчет мне, что эти строчки не с бодуна, а возвращены неким запросом :)
А если так, что изучать надо не паскаль, а сиквель :ь


← →
Sandman   (2009-02-26 00:17) [15]

Все. Спасибо всем!!!
Разобрался.


← →
Sandman   (2009-02-26 00:19) [16]

там да по запросу беру с таблицы кучку дат. И с ними работаю уже


← →
brother ©   (2009-02-26 05:37) [17]

> там да по запросу беру с таблицы кучку дат

тогда согласен с [12], очень возможны "грабли" в будущем



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.008 c
2-1235233665
Denis__
2009-02-21 19:27
2009.04.12
Прозрачность на TImage


15-1234183264
OlegNik
2009-02-09 15:41
2009.04.12
Как узнать сколько ВЗУ (флешек) в компе?


15-1234213435
HellowDelphi
2009-02-10 00:03
2009.04.12
Как спроэктировать правельно таблицы?


15-1234169370
Maacheba
2009-02-09 11:49
2009.04.12
Indy писали индусы?


2-1235073098
LDV
2009-02-19 22:51
2009.04.12
Почему возвращается пустая строка




   Наверх