![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Строки после обновления
Proshka © (2013-01-18 19:52:00)Мастера, помогите пожалуста
Открыл в XE3 (Эмбаркадеро) подредактировать програмку написанную мной же в D6. Скомпиленная тогда еще в D6 она и сейчас работает, а перекомпиленная в XE3 - нихотит.
Проблемная подпрограмма - вот она
procedure moov(FType: string);
var
TSR: TSearchRec;
i: integer;
si,ssss,onstr,nnstr: string;
begin
i:=10*(10+StrToInt(Copy(ss,7,2)));
ssss:=CDir+'*'+ftype;
if FindFirst(CDir+'*'+ftype,faAnyFile,TSR) = 0 then repeat
inc(i); si:=IntToStr(i);
onstr:=CDir+TSR.Name;
nnstr:=CnPath+si+FType;
RenameFile(onstr,nnstr);
Form1.Label4.Caption:=nnstr;
until FindNext(TSR)<>0;
end;
Я "разбавил" ее переменными и выводом в лэйблы пытаясь понять....
Мне не помогло.
Странно что в режиме отладки переменная получается "правильной", именно сумма CnPath+si+FType, а вот Label4.Caption ее отображает почемуто "обрезанной", равной только CnPath
По видимому такойже "недоделанной" она попадает и в функцию RenameFileоттого она и не работает.
А вот понять откуда тут ноги равтут моего ума не хватает.
Помогите, а?
Proshka (2013-01-19 18:05:00) [1]> А может быть не корректна?
я в первую очередь думал оне выставленных часах в фотике, тогда фотки будут датированы скажем годом 2001, а делались они на самом деле в течение последнего полугода.
Dimka Maslov (2013-01-19 11:15:00) [2]При переное программ в новые версии Delphi прежде всего надо помнить о том, что тип string претерпел колоссальные изменения и теперь означает вовсе не то, что было в винтажных версиях. Это я про юникоды.
Германн (2013-01-19 02:28:00) [3]
> А может быть не корректна?
Может. Если её неграмотно "вытаскивать из свойств файла". :)
Inovet (2013-01-19 01:31:00) [4]> [23] Proshka (19.01.13 01:09)
> вытаскивать дату из сбойств файла и если она коректна
А может быть не корректна?
Proshka (2013-01-19 01:09:00) [5]пожалуй я ее всю перепишу ))
тем более что возникла необходимость вытаскивать дату из сбойств файла и если она коректна - использовать ее в имени
bems (2013-01-18 23:32:00) [6]так и я говорю что не нужно, а нужно брать все компоненты из самой даты
clickmaker (2013-01-18 22:58:00) [7]а зачем там вообще что-либо парсить? Если задача
> программа все фото (расширения в 'PictureMoover.set' в виде
> ".jpg") в своем каталоге, переименовывает в сегодняшнюю
> дату и ложит их в папку именем текущего месяца
bems (2013-01-18 22:11:00) [8]
> FormatDateTime()
это ответ как форматировать дату. а если почитать код, то там другая проблема - из даты получается строка, а она потом парсится. вместо этого нужно делать DecodeTime и DecodeDate, минуя строковое представление
Proshka (2013-01-18 22:05:00) [9]ага, спасибо
clickmaker (2013-01-18 21:37:00) [10]> как же его правильно написать?
FormatDateTime()
Proshka (2013-01-18 21:18:00) [11]Не судите строго, хоть я Делфи и пользуюсь с 5 версии но запускаю ее раза 2 в году...
Proshka (2013-01-18 21:14:00) [12]хе, я изза этих форматов прогу уже переделывал при переходе с ХР на W7, а как же его правильно написать?
С другой стороны этой программой только я пользуюсь, ну может еще 2 человека...
bems (2013-01-18 21:09:00) [13]а что будет при других форматах даты и времени ты предпочитаешь не думать. ну правильным путём идешь, чо
Proshka (2013-01-18 21:08:00) [14]CTimeиспользуется в имени файла, а там
двоеточие нельзя
Proshka (2013-01-18 21:06:00) [15]я не знал этих функций, буду юзать , спасибо. А шибка была в CTime:='('+ copy(ss,1,5) +')-';
она ":" внутри дает
переделал в CTime:='('+ copy(ss,1,2)+'.'+copy(ss,4,2) +')-';
работает, спасибо еще раз
Игорь Шевченко (2013-01-18 20:55:00) [16]if not RenameFile(onstr,nnstr) then
RaiseLastOsError;
bems (2013-01-18 20:55:00) [17]GetLastError что возвращает?
Proshka (2013-01-18 20:54:00) [18]аааа, нашел кажись, там в новом имени двоеточие выскакивает...
Спасибо
Proshka (2013-01-18 20:38:00) [19]и правда, пасиб, только RenameFile(onstr,nnstr);всеравно не работает ((
bems (2013-01-18 20:35:00) [20]
> Странно что в режиме отладки переменная получается "правильной",
> именно сумма CnPath+si+FType, а вот Label4.Caption ее отображает
> почемуто "обрезанной", равной только CnPath
вот поэтому
> for j:=1 to NumT do moov(FileType[j]);
> Label4.Caption:=CnPath;
ты сразу после moov перезаписываешь Label4.Caption