Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];

Вниз

как загрузить из .txt с разделителями "^" в .db?   Найти похожие ветки 

 
Daria   (2005-12-06 14:47) [80]

а что писать вместо SELECT * INTO Table1#db IN "D:\" "Paradox 4.x;" FROM Table1#Txt ????


 
alex_*** ©   (2005-12-07 10:32) [81]

напиши "Hello world"


 
ANB ©   (2005-12-07 12:40) [82]


> alex_*** ©   (06.12.05 14:20) [78]
> ANB, судя по всему, не помог по аське. c:\Program Files\Borland\Delphi7\Demos\Db\
> - примеры по работе с БД

Ей и БД то не нужно. Нужно файл распилить на несколько, в зависимости от содержимого полей строк.


 
Engel   (2005-12-07 19:19) [83]

unit t;

interface

uses Classes, SysUtils;

type
T0Rec=packed record
 LineCode      : char;
 ENRD        : array [0..15] of char;
 DocName       : array [0..29] of char;
 PlDocNum      : array [0..2] of char;
 LineTerminator   : array [0..1] of byte;
end;

 T0Imp=Class
 private
 F0Recs: TList;
   FKBKList: TStringList;
   FKBKCount: Integer;

   function Get(Index: Integer): T0Rec;
   procedure put(Index: Integer; const Value: T0Rec);
   function GetCount: Integer;
   function IsKBKPresent (KBK: String): Boolean;
   function GetKBKList: Integer;
 public
  constructor Create;
  destructor Free;
  procedure Add (Value: T0Rec);
  function LoadData (FileName: String): Integer;
   function FindENRD (ENRD: String): Integer;
  property Items[Index: Integer]: T0Rec read Get write put; default;
  property Count: Integer read GetCount;
   property KBKList: TStringList read FKBKList;
   property KBKCount: Integer read FKBKCount;
 end;

implementation

uses
 Dialogs;

{ T0Imp }

procedure T0Imp.Add(Value: T0Rec);
var
Tmp: ^T0Rec;
begin
New (Tmp);
Tmp^:=Value;
F0Recs.Add(Tmp);
end;

constructor T0Imp.Create;
begin
inherited Create;
F0Recs:=TList.Create;
FKBKList:=TStringList.Create;
FKBKCount:=0;
end;

destructor T0Imp.Free;
begin
F0Recs.Clear;
F0Recs.Free;
FKBKList.Clear;
FKBKList.Free;
inherited Destroy;
end;

function T0Imp.Get(Index: Integer): T0Rec;
begin
Result:=T0Rec(F0Recs[Index]^);
end;

function T0Imp.LoadData(FileName: String): Integer;
var
F: TFileStream;
Buff: T0Rec;
begin
Try
Try
 F:=TFileStream.Create(FileName, fmOpenRead);
except
  MessageDlg("Ошибка открытия файла "+FileName, mtError, [mbOK], 0);
   Result:=-1;
 Exit;
end;
While (F.Read(Buff, SizeOf(Buff))=SizeOf(Buff)) do
 Begin
  If (Buff.LineCode="1") or (Buff.LineCode="2") or (Buff.LineCode="3") Then
    Add(Buff);
  end;
Try
 FKBKCount:=GetKBKList;
except
  MessageDlg("Ошибка извлечения списка КБК из "+FileName, mtError, [mbOK], 0);
 Exit;
end;
Finally
F.Free;
Result:=F0Recs.Count;
end;
end;

procedure T0Imp.put(Index: Integer; const Value: T0Rec);
var
Tmp: ^T0Rec;
begin
New (Tmp);
Tmp^:=Value;
F0Recs[Index]:=Tmp;
end;

примерно так...разбираем построчно, а потом в базу.


 
alex_*** ©   (2005-12-07 19:35) [84]

жесть. кондово. и это предназначено для бедной Даши?
а из каких соображений выбрал такие размеры массивов? а если получим DocName.Length() > 29? Без Pchar и операций с указателями нельзя было? и комменты можно было б проставить.


 
alex_*** ©   (2005-12-07 19:37) [85]

и что-то я ни одного Dispose не вижу.


 
аматор ©   (2005-12-07 22:18) [86]

С диском проблема!!!
Проще будет в лине. Там дисков нет.
А текстовой файлик и бде открывает. И вообще обязательно текстовой файлик, может краше дбф иль подобное...(тем более: "ну файла пока нету..... но будет типа следующего:" зачем мучить тхт)...


 
ANB ©   (2005-12-08 09:16) [87]


> Engel   (07.12.05 19:19) [83]

У нее формат CSV(плавающие размеры полей с разделителями), а ты дал пример для фиксированного размера записи. Впрочем, я не поленился, убил вчера 15 минут и выслал ей работающий код.

ЗЫ. А девчонка ничего, прикольная, только феминистка.


 
msguns ©   (2005-12-08 09:23) [88]

>Engel   (07.12.05 19:19) [83]

Спрячь и никому не показывай.

>ANB ©   (08.12.05 09:16) [87]
>А девчонка ничего, прикольная, только феминистка.

Я вот кое-кому-то расскажу-то


 
sniknik ©   (2005-12-08 11:05) [89]

> ЗЫ. А девчонка ничего, прикольная, только феминистка.
бороду сбрить, наколки свести, и ничего будет .... сипатишная. (и вовсе не феминистка, а нормальный)


 
Daria   (2005-12-08 11:23) [90]

приветы всем!
а у меня опять проблем.
я тут все-таки поняла, что и базами ничего не помню....
поэтому, хелп!!!
как найти в .db строку, в первом поле которой например "ппп"????


 
Плохиш ©   (2005-12-08 11:39) [91]


> Daria   (08.12.05 11:23) [90]

Может ты всё-таки сходишь в магазин и купишь поллитра? ... ой блин, об чём это я? книжку каку-нибуть?


 
ANB ©   (2005-12-09 10:38) [92]


> sniknik ©   (08.12.05 11:05) [89]

Ошень даже может быть.


 
Sergey13 ©   (2005-12-09 10:54) [93]

2[92] ANB ©   (09.12.05 10:38)
> Ошень даже может быть.
А чего шепелявить то начал. Уже повстречался? 8-)


 
ANB ©   (2005-12-09 11:32) [94]


> Sergey13 ©   (09.12.05 10:54) [93]

Не, еще нет. Да и не стремлюсь - вдруг правда девченкой окажется. А у меня жена ревнивая.


 
Daria   (2005-12-09 11:57) [95]

сейчас вас всех прямо-таки удивлю....
я действительно девушка


 
Sergey13 ©   (2005-12-09 12:02) [96]

2[95] Daria   (09.12.05 11:57)
>я действительно девушка
Это твои трудности. 8-)


 
Плохиш ©   (2005-12-09 12:22) [97]


> Daria   (09.12.05 11:57) [95]
> я действительно девушка

"У каждого свои недостатки" (c) "В джазе только девушки" :-)


 
Daria   (2005-12-09 12:31) [98]

:) ну спасибо на добром слове, блин!



Страницы: 1 2 3 вся ветка

Форум: "Базы";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.62 MB
Время: 0.014 c
2-1137756519
Змей
2006-01-20 14:28
2006.02.05
*.gif в systray


4-1132580583
clickmaker
2005-11-21 16:43
2006.02.05
MSI (Windows Installer) + AddMonitor() = Access denied


1-1135919649
markers
2005-12-30 08:14
2006.02.05
Отправка текста на E-mail


15-1137319308
Хинт
2006-01-15 13:01
2006.02.05
Тормоза в конкретной папке из-за Apache


8-1125320969
qwe
2005-08-29 17:09
2006.02.05
Запись звука в wav





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский