Форум: "Потрепаться";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];
ВнизПродлема с 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;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.031 c