![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() В ячейку таблицы Word записана дата в формате dd.mm.yyyyy, например, 27.10.2011:
Код:
date2:=table1.Cell(j, 3).Range.Text; Как прочитать символы месяца mm в дате? Мне это нужно для записи команды по алгоритму - если mm = 10, то вывести сообщение "... в октябре...". Задача в общем виде - как прочитать n-ый символ в записи, допустим, Label?! Спасибо! Последний раз редактировалось cadil, 27.10.2011 в 12:36. |
#2
|
|||
|
|||
![]() http://www.delphisources.ru/pages/fa...Utils.php.html
FormatDateTime() Эта функция возвращает дату и время в виде строки в указанном формате. У функции есть два параметра, первым указывается формат строки, в котором нужно вернуть дату. Второй параметр – переменная типа TDateTime, которую нужно преобразовать в строку. В качестве второго параметра также можно использовать функцию Date(), если требуется преобразовать текущие дату и время. Формат строки, он может содержать следующие символы: d – показать день, не подставляя нули в начале: 1, 2, 12 dd – показать день с подстановкой нулей в начале: 01, 02, 12 ddd – показать день недели в коротком формате: Пн, Вт, Ср dddd – показать полный день недели: Понедельник, Вторник, Среда m – показать месяц без нулей: 1, 2, 10 mm – показать месяц с нулями: 01, 02, 10 mmm – показать короткое название месяца: Янв, Фев mmmm – показать полное название месяца: Январь, Февраль yy – показать короткий год: 07, 98, 00 yyyy – показать полный год: 2007, 1998, 2000 h – показать часы, не добавляя нулей: 3, 5, 12 hh – показать часы с нулями: 03, 05, 12 n – минуты без нулей: 3, 5, 12 nn – минуты с нулями: 03, 05, 12 s – секунды без нуля впереди: 3, 7, 30 ss – секунды с нулями: 03, 07, 30 Это практически полный набор форматов, которые вам могут пригодиться. Пример использования: ShowMessage (FormatDateTime('Сегодня dddd dd mmm yyyy г.', Date)); //Результат: Сегодня Чет 27 окт 2011 г. Последний раз редактировалось t116, 27.10.2011 в 12:41. |
#3
|
|||
|
|||
![]() Можно так:
DecodeDate(DateNow, CurrYear, CurrMonth, CurrDay); |
#4
|
|||
|
|||
![]() Цитата:
|
#5
|
|||
|
|||
![]() Можно сделать StrToDate(DateNow), например.
|
#6
|
|||
|
|||
![]() Цитата:
Придумай свои. Я пока не могу ![]() |
#7
|
|||
|
|||
![]() Цитата:
|
#8
|
|||
|
|||
![]() Цитата:
Вы, пока я отвечал переформулировали вопрос |
#9
|
|||
|
|||
![]() s : string
s := Label1.Caption; ShowMessage(s[4]); покажет 4-й символ. |
#10
|
|||
|
|||
![]() Если несколько символов - можно использовать функцию Copy
http://www.delphibasics.ru/Copy.php |
#11
|
|||
|
|||
![]() Цитата:
Решил задачку несколько по-другому: Код:
procedure TForm1.Button10Click(Sender: TObject); var date2: string; pos1, pos2:integer; //символы в записи begin date2:=table1.Cell(j, 3).Range.Text; Label10.Caption:=date2; pos1:= pos('1',date2); pos2:= pos('0',date2); if ((pos1 = 4) and (pos2 = 5)) then begin Label11.Caption:='выполнено в октябре'; end else begin Label11.Caption:='Error!'; end; end; |
#12
|
||||
|
||||
![]() Цитата:
Ты уж прости, но тебе не кажется, что твое решение немного идиотски не универсальное? А что если не октябрь будет, а ноябрь? Код:
procedure TForm1.Button10Click(Sender: TObject); var date2: string; y,m,d: word; begin date2:= table1.Cell(j, 3).Range.Text; Label10.Caption:=date2; DecodeDate(strtodate(date2),y,m,d); case m of 1: Label11.Caption:= 'выполнено в январе'; 2: Label11.Caption:= 'выполнено в феврале'; 3: Label11.Caption:= 'выполнено в марте'; 4: Label11.Caption:= 'выполнено в апреле'; 5: Label11.Caption:= 'выполнено в мае'; 6: Label11.Caption:= 'выполнено в июне'; 7: Label11.Caption:= 'выполнено в июле'; 8: Label11.Caption:= 'выполнено в августе'; 9: Label11.Caption:= 'выполнено в сентябре'; 10: Label11.Caption:= 'выполнено в октябре'; 11: Label11.Caption:= 'выполнено в ноябре'; 12: Label11.Caption:= 'выполнено в декабре'; end; end; Google в помощь Последний раз редактировалось Ildar-tsr, 27.10.2011 в 15:21. |
#13
|
|||
|
|||
![]() Цитата:
Еще раз - благодарю! |
#14
|
|||
|
|||
![]() Цитата:
|
#15
|
||||
|
||||
![]() Цитата:
К сожалению не уверен на все сто поможет ли, но попробуй эту строку дополнить: Код:
//если после даты стоит пробел, то поможет //если сразу символ, то надо подумать как от него избавиться date2:= copy(table1.Cell(j, 3).Range.Text,1,pos(' ',table1.Cell(j, 3).Range.Text)-1); Google в помощь |