Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.05;
Скачать: CL | DM;

Вниз

как загрузить из .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;
Скачать: CL | DM;

Наверх




Память: 0.64 MB
Время: 0.033 c
1-1135680585
MaxY
2005-12-27 13:49
2006.02.05
Синхронизация скроллинга в нескольких гридах !?


2-1137480059
Id
2006-01-17 09:40
2006.02.05
DateEdit


15-1136965696
Danilka
2006-01-11 10:48
2006.02.05
Маппирование клиентского COM-порта под терминалом сервера Win2k


2-1137706453
Vlad1
2006-01-20 00:34
2006.02.05
как в мое прог _часы сделать изменение сис времени


15-1136960266
ArchValentin
2006-01-11 09:17
2006.02.05
Блин, народ, не могу с Blootuth портом разобраться!