Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2012, 11:15   #11
tmtm
Пользователь
 
Регистрация: 12.05.2012
Сообщений: 20
По умолчанию

Во-первых, вы должны нам сказать, что из себя представляет ваша БД.
tmtm вне форума Ответить с цитированием
Старый 12.05.2012, 11:20   #12
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

Цитата:
Так это вообще возможно из типизированного в memo
прямо нет, только через "постредника".
=master= вне форума Ответить с цитированием
Старый 12.05.2012, 11:43   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

чтобы добавить записи в Мемо, нужно их собрать в одну строчку.
это можно сделать так:
Код:
var
   s : string;
   MyVar:MyRec;
   f:File of MyRec;
begin
   AssignFile(f, 'e:\MyFile.bin');
   
   try
     Reset(f); // открыть для чтения

     Memo1.Lines.Clear;  // очистим мемо, куда будем сбрасывать строчки

     // читаем пока не конец файла
    while not EOF(f) do
    begin
       Read(f,  MyVar); // считываем ЗАПИСЬ из файла
       
      with MyVar do
         s := 'Номер='+Nom + ' Дата= '+DateToStr(data)+' VidOp='+ IntToStr(VidOp)+
                ' kodb = '+ kodb + ' shet = ' + shet +' unp='+unp+
                ' name ='+ name+
                ' sum=' + FloatToStr(  sum )+
                ' naz=' + naz;

       Memo1.Lines.Add(s;  //заносим эту строку в поле мемо1
    end;

    CloseFile(f); // закрываем файл
  except
        MessageDlg( 'Ошибка при доступе или чтении файла, либо файл не найден' + 
                     fName,
                     mtError, [mbOk], 0); exit;
  end; 
end;

НО!

Так делать категорически не нужно. Вы будете выполнять ДВОЙНУЮ работу (сначала в строку в Memo, потом разбирать (парсить) строку и формировать данные для БД.

нужно сразу из типизированного файла -> Данные для БД
(мемо можно использовать только в качестве визуализатора... для конвертации оно будет только мешаться под ногами!)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.05.2012, 11:48   #14
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

имея бд, актуальность типизированного файла пугает.
=master= вне форума Ответить с цитированием
Старый 12.05.2012, 12:10   #15
Chicharrr
Пользователь
 
Регистрация: 12.05.2012
Сообщений: 38
По умолчанию

сделала вот так , но все равно выдает вот эту ошибку [Ошибка] Unit6.pas(98): Incompatible types: 'MyRec' and 'ShortString'..
помогите плиз!! сдавать в понидельник!! вот код

unit Unit6;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, Buttons, ComCtrls, DBCtrls;

type
MyRec=Record
Nom:string[20];
data:TDate;
VidOp:integer;
kodb:string[30];
shet:string[30];
unp:string[40];
name:string[60];
sum:Currency;
naz:string[255];
end;


f1=File of MyRec;



TForm6 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
Label4: TLabel;
DateTimePicker1: TDateTimePicker;
BitBtn1: TBitBtn;
Label5: TLabel;
BitBtn2: TBitBtn;
OpenDialog1: TOpenDialog;
Memo1: TMemo;
Edit1: TEdit;
BitBtn3: TBitBtn;

procedure BitBtn2Click(Sender: TObject);


private
{ Private declarations }
public
{ Public declarations }
end;

var
Form6: TForm6;
f:f1;
xm:MyRec;
n:integer;
fName: String[80]; // имя файла


implementation

uses Unit1, Unit2, Unit3, Unit4, Unit5, Unit7;

{$R *.dfm}



procedure TForm6.BitBtn2Click(Sender: TObject);
var i:integer;
begin
if OpenDialog1.Execute=true then
begin
edit1.Text:=OpenDialog1.FileName;





//загрузка




fName := Edit1.text;
AssignFile(f, fName);
{$i-}
Reset(f); // открыть для чтения
{$I+}

if IOResult <> 0 then
begin
MessageDlg( 'Ошибка при доступе к файлу,либо файл не найден' + fName,
mtError, [mbOk], 0); exit;
end;

DataModule2.VipiskaDEB.First;
Repeat
Readln(f,xm.Nom);
Readln(f,xm.data);
Readln(f,xm.VidOp);
Readln(f,xm.kodb);
Readln(f,xm.shet);
Readln(f,xm.unp);
Readln(f,xm.name);
Readln(f,xm.sum);
Readln(f,xm.naz);

DataModule2.VipiskaDEB.Append;
DataModule2.VipiskaDEB.FieldByName( 'Номер').AsString:=xm.Nom;
DataModule2.VipiskaDEB.FieldByName( 'Дата').AsDateTime:=xm.data;
DataModule2.VipiskaDEB.FieldByName( 'Вид операции').AsInteger:=xm.VidOp;
DataModule2.VipiskaDEB.FieldByName( 'Код банка').AsString:=xm.kodb;
DataModule2.VipiskaDEB.FieldByName( 'Счет').AsString:=xm.shet;
DataModule2.VipiskaDEB.FieldByName( 'УНП').AsString:=xm.unp;
DataModule2.VipiskaDEB.FieldByName( 'Наименование поставщика').AsString:=xm.name;
DataModule2.VipiskaDEB.FieldByName( 'Сумма').AsCurrency:=xm.sum;
DataModule2.VipiskaDEB.FieldByName( 'Назначение платежа').AsString:=xm.naz;
DataModule2.VipiskaDEB.Next;
Until Eof(F);
CloseFile(F);
end;
Chicharrr вне форума Ответить с цитированием
Старый 12.05.2012, 12:15   #16
Chicharrr
Пользователь
 
Регистрация: 12.05.2012
Сообщений: 38
По умолчанию

У меня тема "Учет средств на расчетном счету" .Преподаватель сказал загружать из системы клиент-банк выписку и оттуда брать данные,сколько средств поступило и сколько выбыло.Я сделала таблицу Выписка дебет и выписка кредит.Туда из типизированного файла собираюсь загружать информацию..а потом добавлять в таблицы "Поступление" и "Выбытие" .
Chicharrr вне форума Ответить с цитированием
Старый 12.05.2012, 12:17   #17
tmtm
Пользователь
 
Регистрация: 12.05.2012
Сообщений: 20
По умолчанию

В прошлый раз у вас компилятор ругался, как понимаю, на это: Memo1.Lines.Add(Nom);
Вам надо было писать так: Memo1.Lines.Add(str.Nom);
А сейчас на какую строку ругается?
tmtm вне форума Ответить с цитированием
Старый 12.05.2012, 12:21   #18
Chicharrr
Пользователь
 
Регистрация: 12.05.2012
Сообщений: 38
По умолчанию

когда так писала Memo1.Lines.Add(str.Nom); тоже ругался. сейчас ругается на все
[Ошибка] Unit6.pas(99): Incompatible types: 'MyRec' and 'TDate' и также с другими строками
Chicharrr вне форума Ответить с цитированием
Старый 12.05.2012, 12:30   #19
tmtm
Пользователь
 
Регистрация: 12.05.2012
Сообщений: 20
По умолчанию

Попробуйте использовать read, а не readln.
tmtm вне форума Ответить с цитированием
Старый 12.05.2012, 12:31   #20
Chicharrr
Пользователь
 
Регистрация: 12.05.2012
Сообщений: 38
По умолчанию

вот нашла вроде как ошибка в обьявлении f:f1;
Chicharrr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
чтение из типизированного файла kyop Паскаль, Turbo Pascal, PascalABC.NET 9 13.07.2011 17:32
Удаление записей из типизированного файла whiskey Общие вопросы Delphi 6 30.10.2010 15:05
создание типизированного файла Siluet Общие вопросы Delphi 10 26.09.2009 12:47
Загрузка данных из типизированного файла diliana Паскаль, Turbo Pascal, PascalABC.NET 33 30.07.2009 14:59