Форум: "Начинающим";
Текущий архив: 2009.04.12;
Скачать: [xml.tar.bz2];
Внизвытащить из строки определенные данные. как? Найти похожие ветки
← →
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 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.04.12;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.009 c