Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.19;
Скачать: CL | DM;

Вниз

Продлема с StrToDate   Найти похожие ветки 

 
nick-from ©   (2004-09-02 12:04) [0]

Есть функция, возвращающая дату, которая считывается из txt-файла:

function aaa(var f: textfile): TDate;
var
 st: string;
begin
 ..... // Считывание даты в st;
 Result := StrToDate(st);
end;

И такая фигня - функция на выходе дает абы что: 53789 - что-то вроде того, причем дата нормально считывается; st = 01.01.01
Из-за чего такая ерунда возможна, подскажите пожалуйста.

Сделал процедурой - передаю в нее еще и структуру, куда дату потом присваиваю, все работает ок.
begin
 ..... // Считывание даты в st;
 aStruct.Date1 := StrToDate(st);
end;


 
clickmaker ©   (2004-09-02 12:10) [1]


> функция на выходе дает абы что: 53789

Так это и есть дата в числовом представлении
В строковом - DateToStr()


 
Nick-From ©   (2004-09-02 12:15) [2]

так мне надо ведь именно StrToDate


 
Nick-From ©   (2004-09-02 12:17) [3]

Процедурой - тоже не работает :(


 
Алхимик ©   (2004-09-02 12:18) [4]

TDate + F1


 
Алхимик ©   (2004-09-02 12:19) [5]


> функция на выходе дает абы что: 53789

Это число дней прошедших с 01.01.1899 (точно не помню)
Смотри формат TDate и TDateTime


 
Nick-From ©   (2004-09-02 12:20) [6]

TDate is a used to represent a date.


 
clickmaker ©   (2004-09-02 12:22) [7]


> [2] Nick-From ©   (02.09.04 12:15)

не понимаю, что тебя смущает. Это и есть дата. Дата - это же число дней, начиная с определенного момента


 
Nick-From ©   (2004-09-02 12:24) [8]

Просто потом, когда я ее хочу вывести и делаю DateToStr, выдается ошибка [][].[][].[][] is not a valid date
И я не пойму что это за дела, объясните дураку, пожалуйста


 
Алхимик ©   (2004-09-02 12:26) [9]


> [8] Nick-From ©   (02.09.04 12:24)
> Просто потом, когда я ее хочу вывести и делаю DateToStr,
> выдается ошибка [][].[][].[][] is not a valid date
> И я не пойму что это за дела, объясните дураку, пожалуйста

Пример кода давай.


 
Nick-From ©   (2004-09-02 12:36) [10]

Мля, мужики, заработало :), не подумайте, что прикалывался, сам не знаю, шо це за bug. Код вот:

function p_ReadDate(var f: TextFile): TDate;
var
 st: string[8];
 c: char;
begin
 st := "";
 Read(f, c);
   if c = " "
     then while(c = " ") and Not Eoln(f) do Read(f, c);
 st := st + c;
 Read(f, c);
 st := st + c;
 Read(f, c);
 st := st + c_DATESEPARATOR;
 Read(f, c);
 st := st + c;
 Read(f, c);
 st := st + c;
 Read(f, c);
 st := st + c_DATESEPARATOR;
 Read(f, c);
 st := st + c;
 Read(f, c);
 st := st + c;
 Result := StrToDate(st);
end;


 
Алхимик ©   (2004-09-02 12:39) [11]

фтопку


 
Nick-From ©   (2004-09-02 12:41) [12]

???


 
Ega23 ©   (2004-09-02 12:41) [13]

Nick-From ©   (02.09.04 12:36) [10]

Это что за хрень?????


 
Nick-From ©   (2004-09-02 12:45) [14]

читаю из txt дату - она в формате dd/mm/yy - а мне недо в dd.mm.yy
c_DATESEPARATOR = "."


 
Nikolay M. ©   (2004-09-02 12:46) [15]


> Ega23 ©   (02.09.04 12:41) [13]

Это он в дате "01.01.01" точки заменяет на разделитель даты :?)
Надо же было так левой ногой почесаться!


 
Nick-From ©   (2004-09-02 12:48) [16]

А как было бы лучше?


 
Ega23 ©   (2004-09-02 12:48) [17]

"Псих." (с) Ёжик в тумане.


 
Ega23 ©   (2004-09-02 12:49) [18]

Nick-From ©   (02.09.04 12:48) [16]

Смотря что тебе надо. Ты ЗАДАЧУ так и не объяснил.


 
Nick-From ©   (2004-09-02 12:53) [19]

Процедура считывания из txt-файла (html) секций (дата, время):
Как будет лучше? я пока только знаю AssignFile, Reset, Read
Вот пример html для считывания:

<tr valign=top>
 <td height=9 colspan=3>
 <td width=89 colspan=3><font size=2 face="Arial">01/01/04 09:07</font>
 <td>
 <td width=125 colspan=4><font size=2 face="Arial">80724221576</font>
 <td>
 <td width=114 colspan=3><font size=2 face="Arial">Белгород</font>
 <td>
 <td width=100 colspan=2><font size=2 face="Arial"> </font>
 <td colspan=2>
 <td width=39><font size=2 face="Arial"> </font>
 <td>
 <td width=49 colspan=4><font size=2 face="Arial">Телеф.</font>
 <td>
 <td width=12 colspan=2><font size=2 face="Arial"> </font>
 <td>
 <td width=50 colspan=3 align=right><font size=2 face="Arial">1: 00</font>
 <td colspan=2>
 <td width=62 colspan=2 align=right><font size=2 face="Arial"> 0.00</font>
 <td colspan=4>
<tr valign=top>


 
VID ©   (2004-09-02 13:21) [20]


function StrReplace(const Str:String; Str1:String; const Str2:string):string;
// str - исходная строка
// str1 - подстрока, подлежащая замене
// str2 - заменяющая строка
var
 P, L : Integer;
begin
 Result := str;
 Str1:=AnsiUpperCase(Str1);
 L := Length(Str1);
 repeat
   P := Pos(Str1, AnsiUpperCase(Result)); // ищем подстроку
   if P > 0 then
   begin
     Delete(Result, P, L); // удаляем ее
     Insert(Str2, Result, P); // вставляем новую
   end;
 until P = 0;
end;

procedure;
var S1,S2:String;
   D:TDate;
begin
 S1 := "01/01/01";
 S2 := StrReplace(S1, "/", DateSeparator);
 D := StrToDate(S2);
end;


 
Vovchik_A ©   (2004-09-02 13:21) [21]

А ShortDateFormat  не устраивает ? Ты , че ваще делаешь ?


 
Ega23 ©   (2004-09-02 13:25) [22]

Vovchik_A ©   (02.09.04 13:21) [21]

НЕ-Е-Е-Е-ЕТ!!!!!! НЕ ТАК!!!!   "В натуре" забыл!
Вот так надо:
Ты , че ваще, В НАТУРЕ, делаешь ?


 
Vovchik_A ©   (2004-09-02 13:26) [23]

Ega23 ©   (02.09.04 13:25) [22]

Олег, 5 баллов :))


 
begin...end ©   (2004-09-02 13:27) [24]


> [20] VID ©   (02.09.04 13:21)

А стандартный StringReplace() чем не устроил-то?


 
VID ©   (2004-09-02 19:32) [25]

begin...end ©   (02.09.04 13:27) [24]
Поддерживаю отечественного производителя :)



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

Текущий архив: 2004.09.19;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.041 c
3-1092918902
Corax
2004-08-19 16:35
2004.09.19
Как правильно закастовать дату?


1-1094143843
Evgenius
2004-09-02 20:50
2004.09.19
Создание help файла в формате CHM


3-1092993457
Lizka
2004-08-20 13:17
2004.09.19
как вытащить значение запроса


10-1038816487
Calm
2002-12-02 11:08
2004.09.19
Материалы в помощь начинающим. Где их взять?


4-1091730200
Toxic
2004-08-05 22:23
2004.09.19
lpfnWndProc := ???