powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Помогите
9 сообщений из 9, страница 1 из 1
Помогите
    #32125117
РАМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как вытащить из базы DBF значения полей (строковых) при помощи условия т.е. просмотрет последовательно записи и если значение поля например 'А6777ВА' имеет формат "1 символ+3 цифры+2 символа" то вывести запись.

Заранее благодарю за помощь
...
Рейтинг: 0 / 0
Помогите
    #32125120
Фотография KirillovA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select поле1 + поле2 + поле3 from таблица
...
Рейтинг: 0 / 0
Помогите
    #32125123
oleg_e
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что значит: вытащить из базы DBF значения полей при помощи условия?
Выбрать одним SELECT'ом или открыть таблицу и последовательно перебрать все записи?
Куда выбрать, в другую таблицу?

Уточни?
...
Рейтинг: 0 / 0
Помогите
    #32125131
РАМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я немного неправильно объяснил. Дело в том Что в базе по полю Р1 имеются записи следующего формата "А2345ПП","2345ДАВ" и так далее. Теперь когда я перебираю записи мне нужна изменять по условию значения поля Р2.
Пример

table1.first;
while not table1.eof do
begin
Если первая запись Р1 имеет формат "А2345ПП" то изменить значение поля Р2
end;
...
Рейтинг: 0 / 0
Помогите
    #32125140
oleg_e
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Примитивный метод - можно и по лучше придумать!
Зато - гибкость - можно настроить для любых символов, цифр, кодировок.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
function IsTrueFormat(s: string): boolean;
const Letter = ['А','Б','В','Г','Д','Е' {и т.д.}];
      Digit = ['0','1','2','3','4','5','6','7','8','9'];
begin
   Result:= (s[ 1 ] in Letter) and
            (s[ 2 ] in Digit) and
            (s[ 3 ] in Digit) and
            (s[ 4 ] in Digit) and
            (s[ 5 ] in Letter) and
            (s[ 6 ] in Letter);
end;

Table1.First; 
while not Table1.EOF do 
begin 
   if IsTrueFormat(Table1P1.AsString) then
    {изменить значение поля Р2};
   Table1.Next;
end;


"В теле такая приятная гибкость образовалась" :-)
...
Рейтинг: 0 / 0
Помогите
    #32125175
Фотография maloi_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P1 и P2 ну очень похоже на FLINT. А мы случайно не коллеги ?
...
Рейтинг: 0 / 0
Помогите
    #32125423
oleg_e
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V 2.0 (Вроде бы строки работают быстрее, чем множества)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
function IsTrueFormat(s: string): boolean;
const 
   Letter = 'АБВГДЕ..';
   Digit = '0123456789';
begin
   Result:= (Length(s) =  6 ) and
            (s[ 1 ] in Letter) and
            (s[ 2 ] in Digit) and
            (s[ 3 ] in Digit) and
            (s[ 4 ] in Digit) and
            (s[ 5 ] in Letter) and
            (s[ 6 ] in Letter);
end;
...
Рейтинг: 0 / 0
Помогите
    #32125429
oleg_e
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка, ошибка! Не дописал! Ну, я думаю и так ясно!

V 2.1 (Вроде бы строки работают быстрее, чем множества)

function IsTrueFormat(s: string): boolean;
const
Letter = 'АБВГДЕ..';
Digit = '0123456789';
begin
Result:= (Length(s) = 6) and
(Pos(s, Letter) > 0) and
(Pos(s, Digit) > 0) and
(Pos(s, Digit) > 0) and
(Pos(s, Digit) > 0) and
(Pos(s[5], Letter) > 0) and
(Pos(s[6], Letter) > 0);
end;
...
Рейтинг: 0 / 0
Помогите
    #32126212
help_me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ нелп ми. нужна книга "Род Стивенс. Delphi, готовые алгоритмы". В инет магазинах ее нет, мож знаете где ее моно взять в электронном варианте??? буду очень признателен.
P.S. Заранее спасибо
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Помогите
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]