![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как загрузить из .txt с разделителями "^" в .db? [D7]
Daria © (2005-12-05 13:19:00)Подскажите, пожалуйста, как загрузить из .txt с разделителями "^" в .db в Delphi???
Daria (2005-12-09 12:31:00) [1]:) ну спасибо на добром слове, блин!
Плохиш (2005-12-09 12:22:00) [2]
> Daria (09.12.05 11:57) [95]
> я действительно девушка
"У каждого свои недостатки" (c) "В джазе только девушки" :-)
Sergey13 (2005-12-09 12:02:00) [3]2[95] Daria (09.12.05 11:57)
>я действительно девушка
Это твои трудности. 8-)
Daria (2005-12-09 11:57:00) [4]сейчас вас всех прямо-таки удивлю....
я действительно девушка
ANB (2005-12-09 11:32:00) [5]
> Sergey13 © (09.12.05 10:54) [93]
Не, еще нет. Да и не стремлюсь - вдруг правда девченкой окажется. А у меня жена ревнивая.
Sergey13 (2005-12-09 10:54:00) [6]2[92] ANB © (09.12.05 10:38)
> Ошень даже может быть.
А чего шепелявить то начал. Уже повстречался? 8-)
ANB (2005-12-09 10:38:00) [7]
> sniknik © (08.12.05 11:05) [89]
Ошень даже может быть.
Плохиш (2005-12-08 11:39:00) [8]
> Daria (08.12.05 11:23) [90]
Может ты всё-таки сходишь в магазин и купишь поллитра? ... ой блин, об чём это я? книжку каку-нибуть?
Daria (2005-12-08 11:23:00) [9]приветы всем!
а у меня опять проблем.
я тут все-таки поняла, что и базами ничего не помню....
поэтому, хелп!!!
как найти в .db строку, в первом поле которой например "ппп"????
sniknik (2005-12-08 11:05:00) [10]> ЗЫ. А девчонка ничего, прикольная, только феминистка.
бороду сбрить, наколки свести, и ничего будет .... сипатишная. (и вовсе не феминистка, а нормальный)
msguns (2005-12-08 09:23:00) [11]>Engel (07.12.05 19:19) [83]
Спрячь и никому не показывай.
>ANB © (08.12.05 09:16) [87]
>А девчонка ничего, прикольная, только феминистка.
Я вот кое-кому-то расскажу-то
ANB (2005-12-08 09:16:00) [12]
> Engel (07.12.05 19:19) [83]
У нее формат CSV(плавающие размеры полей с разделителями), а ты дал пример для фиксированного размера записи. Впрочем, я не поленился, убил вчера 15 минут и выслал ей работающий код.
ЗЫ. А девчонка ничего, прикольная, только феминистка.
аматор (2005-12-07 22:18:00) [13]С диском проблема!!!
Проще будет в лине. Там дисков нет.
А текстовой файлик и бде открывает. И вообще обязательно текстовой файлик, может краше дбф иль подобное...(тем более: "ну файла пока нету..... но будет типа следующего:" зачем мучить тхт)...
alex_*** (2005-12-07 19:37:00) [14]и что-то я ни одного Dispose не вижу.
alex_*** (2005-12-07 19:35:00) [15]жесть. кондово. и это предназначено для бедной Даши?
а из каких соображений выбрал такие размеры массивов? а если получим DocName.Length() > 29? Без Pchar и операций с указателями нельзя было? и комменты можно было б проставить.
Engel (2005-12-07 19:19:00) [16]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;
примерно так...разбираем построчно, а потом в базу.
ANB (2005-12-07 12:40:00) [17]
> alex_*** © (06.12.05 14:20) [78]
> ANB, судя по всему, не помог по аське. c:\Program Files\Borland\Delphi7\Demos\Db\
> - примеры по работе с БД
Ей и БД то не нужно. Нужно файл распилить на несколько, в зависимости от содержимого полей строк.
alex_*** (2005-12-07 10:32:00) [18]напиши "Hello world"
Daria (2005-12-06 14:47:00) [19]а что писать вместо SELECT * INTO Table1#db IN "D:\" "Paradox 4.x;" FROM Table1#Txt ????
Daria (2005-12-06 14:41:00) [20]ой, блин, он мне пишет, "нераспознаваемый формат базы данных" когда я в connection свой текстовый файл указываю....