Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1234338924
Дмитрий С
2009-02-11 10:55
2009.04.12
Изменение прав доступа NTFS через какой либо COM obj.


2-1235233665
Denis__
2009-02-21 19:27
2009.04.12
Прозрачность на TImage


1-1209900778
DVM
2008-05-04 15:32
2009.04.12
Как в ObjectInspector прописать ShortCut для Action CTRL + ПЛЮС


15-1234184117
tytus
2009-02-09 15:55
2009.04.12
OCR в Delphi2009


2-1235193658
vegarulez
2009-02-21 08:20
2009.04.12
вопрос про SSL:= TIdSSLIOHandlerSocketOpenSSL.Create(nil);





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский