Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
08-06-2007 00:10
>>> как можно написать более универсальное
Надо исследовать примеры того, как материнские платы предлагаются в прайс-листе. А дальше придется писать парсер, никуда не деться и раскладывать данные по полочкам. В идеале стоит использовать регулярные выражения, читать их из внешнего файла, чтобы в случае изменения формата базы данных можно было бы просто заменить этот файл, а не переписывать целиком программу. Это по поводу разбора Вашим методом - через Pos и Copy.
Есть прайс-лист комплектующих(xls), нужно через Делфи обновить базу Access'a, при этом отслеживая, к примеру, на материнке сокет и записывать...
...
for i:=1 to 1000 do
begin
E_mtype := EWS.Range['c'+inttostr(i),'c'+inttostr(i)];
j:=copy(E_mtype,1,2);
if (j<>'') then
begin
n:=strtoint(j);
case n of
10,11:
begin
datamodule1.ADOTable1.Append;
if (n=10) then datamodule1.ADOTable1firm.Value:=1 else datamodule1.ADOTable1firm.Value:=2;
s:=EWS.Range['d'+inttostr(i),'d'+inttostr(i)];
datamodule1.ADOTable1inf.Value:=s;
if pos('939',s)<>0 then datamodule1.ADOTable1socket.Value:=1
else if pos('AM2',s)<>0 then datamodule1.ADOTable1socket.Value:=2 else
...
if pos('SATA',s)<>0 then datamodule1.ADOTable1shleif.Value:=2 else datamodule1.ADOTable1shleif.Value:=1;
if pos('AGP',s)<>0 then datamodule1.ADOTable1port.Value:=1 else datamodule1.ADOTable1port.Value:=2;
...
Здесь отслеживает по коду устойства, а как можно написать более универсальное
27-05-2007 06:04 | Вопрос к автору: запрос дополнительной информации
А что конкретно вы хотите сделать? Ибо мне с пребольшим трудом понятно, что же вы реально хотите сделать. Есть лист в Excel, надо данные с него записать в базу данных Access? Тогда используйте TExcelApplication или прямое подключение через OLE к Excel. Статью по этому вопросу вам уже подсказали. Запись в Access удобнее всего осуществлять через ADO. Это его "родная" технология доступа. С другой стороны, в Access есть меню Файл-Внешние данные-Импорт-Файлы Excel. Этим можно пользоваться, управляя Access через OLE или тот же TAccessApplication. Накенец, в таблицах Excel могут быть объединенные ячейки, графики, макросы (например) - как вы будете разгребать это д....дело я затрудняюсь сказать.
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.