Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.01.2012, 00:23
RinatKzn RinatKzn вне форума
Прохожий
 
Регистрация: 01.06.2011
Сообщения: 10
Репутация: 10
По умолчанию преобразование имени файла (фото) для хранения в базе

тут пришлось использовать сторонние готовые dbf-файлы

так там есть каталог с большим количеством jpg-файлов с именами вида "201103041234.jpg"
а соответствующие записи в базе (поле Строка 7) в виде "$bPk>]B"

я не пойму, что это за преобразование такое,
и как получить из "$bPk>]B" конкретное название "201103041234.jpg"
Ответить с цитированием
  #2  
Старый 26.01.2012, 02:00
RinatKzn RinatKzn вне форума
Прохожий
 
Регистрация: 01.06.2011
Сообщения: 10
Репутация: 10
По умолчанию

кое как нашел в 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  
Старый 26.01.2012, 02:34
RinatKzn RinatKzn вне форума
Прохожий
 
Регистрация: 01.06.2011
Сообщения: 10
Репутация: 10
По умолчанию

как переписать в 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  
Старый 26.01.2012, 02:44
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Используй StringReplace.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #5  
Старый 26.01.2012, 09:42
RinatKzn RinatKzn вне форума
Прохожий
 
Регистрация: 01.06.2011
Сообщения: 10
Репутация: 10
По умолчанию

Использовал)
что-то не получается

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  
Старый 26.01.2012, 17:56
RinatKzn RinatKzn вне форума
Прохожий
 
Регистрация: 01.06.2011
Сообщения: 10
Репутация: 10
По умолчанию

вопрос закрыт)
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:15.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter