|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
преобразование имени файла (фото) для хранения в базе
тут пришлось использовать сторонние готовые dbf-файлы
так там есть каталог с большим количеством jpg-файлов с именами вида "201103041234.jpg" а соответствующие записи в базе (поле Строка 7) в виде "$bPk>]B" я не пойму, что это за преобразование такое, и как получить из "$bPk>]B" конкретное название "201103041234.jpg" |
#2
|
|||
|
|||
кое как нашел в ReFоxe, что это 142-ричное преобразование
теперь пока не могу въехать) какая функция и есть ли такая в delphi: CHRTRAN (Foxpro) Синтаксис: CHRTRAN(cSearchedExpression, cSearchExpression, cReplacementExpression) Параметры: cSearchedExpression Задает выражение, в котором функция CHRTRAN( ) будет заменять символы. cSearchExpression Задает выражение, содержащее символы, которые CHRTRAN( ) будет искать в выражении cSearchedExpression. cReplacementExpression Задает выражение, содержащее символы замены. Если какой-либо символ из выражения cSearchExpression найден в выражении cSearchedExpression, то этот символ в cSearchedExpression замещается символом из выражения cReplacementExpression, находящимся на той же позиции в cReplacementExpression, что и соответствующий символ в выражении cSearchExpression. Если в выражении cReplacementExpression меньше символов, чем в cSearchExpression, лишние символы выражения cSearchExpression удаляются из cSearchedExpression. Если в cReplacementExpression больше символов, чем в cSearchExpression, эти лишние символы выражения cReplacementExpression игнорируются. |
#3
|
|||
|
|||
как переписать в delphi ?
codedfilename = "$b8=R--" filename = "" sourcedir = "C:\" Form1.label1.caption = STR(cton(codedfilename, 142, 34), 14) filename = STR(cton(codedfilename, 142, 34), 14) Form1.label2.caption = ADDBS(sourcedir)+ADDBS(LEFT(filename, 7))+filename+'.jpg' FUNCTION cton PARAMETER string, p, shift PRIVATE k, nresult nresult = 0 string = CHRTRAN(string, CHR(33), '') FOR k = 1 TO LEN(string) nresult = nresult*p+ASC(SUBSTR(string, k, 1))-shift ENDFOR RETURN nresult ENDFUNC |
#4
|
||||
|
||||
Используй StringReplace.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#5
|
|||
|
|||
Использовал)
что-то не получается foxpro зарустил, вывод 20100921242669 а delphi 474297389 что я делаю не правильно? Код:
function cton (s:string;p,shift:integer):integer; var k,j:integer; c:string; begin result:=0; s:=StringReplace(s,chr(33),'',[rfReplaceAll]); for k:=1 to Length(s) do begin c:=copy(s,k,1); j:=ord(c[1]); result:=result*p+j-shift; end; end; procedure TForm1.Button1Click(Sender: TObject); var codedfilename:string; begin codedfilename:='$b8=R--'; showMessage(inttostr(cton(codedfilename,142,34))); end; Последний раз редактировалось RinatKzn, 26.01.2012 в 09:49. |
#6
|
|||
|
|||
вопрос закрыт)
|