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

Вниз

Проблемы с TXT   Найти похожие ветки 

 
visnuk ©   (2003-01-31 16:07) [0]

Такой вопрос как мне произвести чтение из TXT файла по определенной последовательности.
Например:
строка 1
строка 120
строка 2
ну и так далее
Знаю что можно ReadLn файла сделать, но мне необходимо произвести перебор в файле.

Затем занос в базу данных Paradox
Пример я использовал из книги код ниже
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, StdCtrls, Grids, DBGrids;

type
TForm1 = class(TForm)
btnReadCapitals: TButton;
tbCapitals: TTable;
dsCapitals: TDataSource;
dbgCapitals: TDBGrid;
procedure btnReadCapitalsClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.btnReadCapitalsClick(Sender: TObject);
var
F: TextFile;
StateName:String[120];
CapitalName:String[100];
begin
tbCapitals.Open;
Assignfile(F, "alex.txt"); //чтение из файла и занос в переменную
Reset(F); //
try
While not Eof(F) do
begin
ReadLn(F, StateName, CapitalName); // чтение самого файла
tbCapitals.Insert; // создание в таблице
tbCapitals["State_Name"] := StateName; // графа
tbCapitals["Capital_Name"] := CapitalName; // графа
tbCapitals.Post; //занести
end;
finally
CloseFile(F); // закрытие файла
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
tbCapitals.EmptyTable;
end;

end.
Так вот в чем проблема установил базе что Название граф Alhpa и длинна 120 символов, а он не хочет заносить параметры говорит ошибка:
Minimum validity check failed Field: State_Name
Что - бы это моголо значить.
Просьба ответить кто сможет


 
MsGuns ©   (2003-01-31 17:23) [1]

А не проще объявить TStringList, и в него одной строкой:

var
List: TStringList;
.....

List := TStringList.Create;
List.LoadFromFile("TextFile.txt"); прочитать весь файл
.....

Table1.FieldByName("Fld1").AsString := List[119];
Table1.FieldByName("Fld17").AsString := List[101];

и т.д.

try
List.Free;
finally
end;

Кстати, от формата Парадокс это, ИМХО, совершенно не зависит, просто ты не указал св-во AsXXXXXX для чтения



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

Текущий архив: 2003.02.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
14-53240
sniknik
2003-01-31 19:25
2003.02.17
Чего за хрень? Мы потеряли готовые програмы? или только у меня?


14-53209
Supreme
2003-01-30 23:55
2003.02.17
Формат пиксела в картинке.


4-53321
Delphi5.01
2003-01-07 02:02
2003.02.17
Get IP


1-52833
super_alex
2003-02-07 12:35
2003.02.17
Как выйти из цикла?


1-52975
Dragon 31337
2003-02-09 23:53
2003.02.17
Как засечь время, лучше с большой точностью