Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с файлами 
:(
    Опции темы
MrDmitry
Дата 11.11.2006, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Народ помогите! есть код программы вот он:

Код

type
a1=record
zapis:String[20];
data:TDate;
Data_oplati:TDate;
Data_prihoda:TDate;
Nomer:string[20];
Naimenovanie:string[20];
Inn_posyavshika:string[20];
Kol_Vo_pokupok:Integer;
stoimost:Real;
Grid:integer;
end;

{Процедура сохранения}
procedure TForm1.SaveToFile;
var
  Fa:File of a1;
  i:integer;
begin
      AssignFile(fa,'grid.dat');
      ReWrite(fa);
      for i:=1 to StringGrid1.RowCount-1 do
        begin
          with StringGrid1 do
            begin
              a.zapis:=Cells[0,i];
              a.data:=StrToDate(Cells[1,i]);
              a.Data_oplati:=StrToDate(Cells[2,i]);
              a.Data_Prihoda:=StrToDate(Cells[3,i]);
              a.Nomer:=Cells[4,i];
              a.Naimenovanie:=Cells[5,i];
              a.Inn_posyavshika:=Cells[6,i];
              a.stoimost:=StrToFloat(cells[7,i]);
              a.Kol_vo_pokupok:=StrToInt(cells[8,i]);
              a.grid:=strtoint(a.zapis);
            end;
          write(fa,a);
        end;
      CloseFile(fa);
      BaseChange:=false;
    end;

    {Процедура загруски}
procedure TForm1.LoadFromFile;
var
  Fa:File of a1;
  a:a1;
  i:integer;
begin
      AssignFile(fa,'grid.dat');
      Reset(fa);
      i:=0;
      while not(EOF(fa)) do
        begin
          inc(i);
          read(fa,a);
          StringGrid1.RowCount:=i+1;
          with StringGrid1 do
            begin
              Cells[0,i]:=a.zapis;
              Cells[1,i]:=DateToStr(a.data);
              Cells[2,i]:=DateToStr(a.Data_oplati);
              Cells[3,i]:=DateToStr(a.data_Prihoda);
              cells[4,i]:=a.nomer;
              Cells[5,i]:=a.Naimenovanie;
              Cells[6,i]:=a.Inn_posyavshika;
              cells[7,i]:=FloatToStr(a.stoimost);
              Cells[8,i]:=IntToStr(a.Kol_Vo_pokupok);
            end;
        end;
      CloseFile(fa);
      BaseChange:=false;
    end;

{Открытие файла}
procedure TForm1.N2Click(Sender: TObject);
begin
StringGrid1.Visible:=true;
  if (StringGrid1.Cells[0,1]<>'')and BaseChange then
    if MessageBox(form1.Handle,'Сохранить текущую базу?',
                  'Внимание!',MB_ICONQUESTION+MB_YESNO)=IDYES then
      SaveToFile;
  LoadFromFile;
  Memo1.Lines.Add('>>> Файл загружен с жесткого диска  <<<')
end;
{Сохранения файла}
procedure TForm1.N3Click(Sender: TObject);
begin
  if MessageBox(form1.Handle,'Сохранить текущую базу?',
    'Внимание!',MB_ICONQUESTION+MB_YESNO)=IDYES then
    SaveToFile;
    Memo1.Lines.Add('>>> Файл сохранен на жестком диске <<<')
end;

Процедура добовления
Var
data,Data_oplati,Data_prihoda:TDate;
Nomer,Naimenovanie,Inn_posyavshika:string[20];
Kol_Vo_pokupok:Integer;
stoimost:Real;
firma,Firma_Name:ShortString;
i,k:integer;
Form2: TForm2;
procedure TForm2.BitBtn1Click(Sender: TObject);
begin
 i:=i+1;
 Kol:=kol+1;
 Naimenovanie:=ComboBox1.Text;
 Data:=DateTimePicker1.date;
 Data_oplati:=DateTimePicker2.date;
 Data_Prihoda:=DateTimePicker3.date;
 Nomer:=LabeledEdit1.text;
 Inn_posyavshika:=LabeledEdit2.Text;
 stoimost:=StrToFloat(LabeledEdit3.text);
 Kol_Vo_Pokupok:=StrToInt(LabeledEdit4.text);
{-----------------------------------------------------------}
 form1.stringgrid1.cells[0,i]:=IntToStr(Kol);
 form1.stringgrid1.cells[1,i]:=DateToStr(data);
 form1.stringgrid1.cells[2,i]:=DateToStr(data_Oplati);
 form1.stringgrid1.cells[3,i]:=DateToStr(data_Prihoda);
 form1.stringgrid1.cells[4,i]:=Nomer;
 form1.stringgrid1.cells[5,i]:=Naimenovanie;
 form1.stringgrid1.cells[6,i]:=Inn_posyavshika;
 form1.stringgrid1.cells[7,I]:=FloatToStr(stoimost);
 form1.stringgrid1.cells[8,I]:=IntToStr(Kol_Vo_pokupok);
 form1.StringGrid1.RowCount:=Kol+1;
{----------------------------------------------------------}
 form2.Visible:=false;
 LabeledEdit1.Clear;
 LabeledEdit2.Clear;
 LabeledEdit3.Clear;
 LabeledEdit4.Clear
end;


Раньше все работоло но сейчас данные вводяться как то странно!
1 запуск программы все работает прекрасно и сохроняесться и загружаеться и добовляеться!
2 запуск программы данные загружаються но при попытка добавить новою запись (в StringGrid а не в файл) она встает на 1 строку но с правельным порядковым номером! тоесть была нумерация 1,2,3,4 при добовлении за место 1 стоновиться 2 с моими добовляемыми данными и т.д если бы була нумерация 7,22 то за место 7 сталобы 8 а за место 22 сталобы 9! надеюсь что вы меня поняли!! Помогите плиз!

Это сообщение отредактировал(а) MrDmitry - 11.11.2006, 21:52
PM MAIL   Вверх
Guedda
Дата 12.11.2006, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



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


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
MrDmitry
Дата 12.11.2006, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Цитата(Guedda @ 12.11.2006,  16:59)
Не стоит поднимать тему. Мы её итак увидим. 
А ты пробовал пройтись дебагером по программе, и протрейсить все переменные? Если нет, и не хочешь заморачиваться, кинь сюда свой проект полностью, и я посмотрю сам. А так вроде как ничего путного сказать нельзя.

НЕ получаеться сунуть сюда файл! Говорит тип файла не подходит! файл пытаюсь добавить в архиве rar
PM MAIL   Вверх
MrDmitry
Дата 13.11.2006, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Вот короч!

Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, Grids,winsock,shellapi, Unit4, Unit3, StdCtrls, ExtCtrls,
  ComCtrls;

type
a1=record
zapis:String[20];
data:TDate;
Data_oplati:TDate;
Data_prihoda:TDate;
Nomer:string[20];
Naimenovanie:string[20];
Inn_posyavshika:string[20];
Kol_Vo_pokupok:Integer;
stoimost:Real;
Grid:integer;
end;
 b1=RECORD
  Svet:TColor;
end;
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    StringGrid1: TStringGrid;
    N13: TMenuItem;
    N14: TMenuItem;
    PopupMenu1: TPopupMenu;
    N17: TMenuItem;
    N18: TMenuItem;
    N7: TMenuItem;
    N9: TMenuItem;
    PopupMenu2: TPopupMenu;
    N23: TMenuItem;
    N24: TMenuItem;
    N25: TMenuItem;
    N29: TMenuItem;
    N30: TMenuItem;
    N31: TMenuItem;
    N32: TMenuItem;
    N33: TMenuItem;
    N34: TMenuItem;
    N35: TMenuItem;
    N36: TMenuItem;
    N8: TMenuItem;
    N10: TMenuItem;
    N12: TMenuItem;
    N15: TMenuItem;
    FontDialog1: TFontDialog;
    N16: TMenuItem;
    N20: TMenuItem;
    N11: TMenuItem;
    ColorDialog1: TColorDialog;
    N19: TMenuItem;
    N21: TMenuItem;
    N22: TMenuItem;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Memo1: TMemo;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    ProgressBar1: TProgressBar;
    Timer1: TTimer;
    N26: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N10Click(Sender: TObject);
    procedure N14Click(Sender: TObject);
    procedure N17Click(Sender: TObject);
    procedure N18Click(Sender: TObject);
    Procedure Ic(n:Integer;Icon:TIcon);
    procedure N9Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure N23Click(Sender: TObject);
    procedure N24Click(Sender: TObject);
    procedure N25Click(Sender: TObject);
    procedure N30Click(Sender: TObject);
    procedure N31Click(Sender: TObject);
    procedure N32Click(Sender: TObject);
    procedure N33Click(Sender: TObject);
    procedure N34Click(Sender: TObject);
    procedure N35Click(Sender: TObject);
    procedure N36Click(Sender: TObject);
    procedure N11Click(Sender: TObject);
    procedure N20Click(Sender: TObject);
    procedure N21Click(Sender: TObject);
    procedure N19Click(Sender: TObject);
    procedure N22Click(Sender: TObject);
    procedure N26Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    BaseChange:boolean;
    procedure SaveToFile;
    procedure LoadFromFile;
    procedure SortABC(col:integer);  //Сортировка по алфавиту; col номер столбца
    procedure DataSort(col: integer);
    procedure Find(s:string;col:integer);
  public
    { Public declarations }
  protected
  procedure IconMouse(var Msg: TMessage); message WM_USER + 1;
  procedure ControlWindow(var Msg: TMessage); message WM_SYSCOMMAND;
  end;

var a:a1;
    b:b1;
    fa:file of a1;
    fb:file of b1;
    kol,s,k1,t,i:integer;
    Kol_Vo:String;
    x,Bez,Nds:Real;
  Form1: TForm1;

implementation

uses Unit2, Unit5, Unit6, DateUtils;



{$R *.dfm}
{Загруска в таблицу первичных данных}
procedure TForm1.FormCreate(Sender: TObject);
begin
Stringgrid1.cells[0,0]:='№ Записи';
Stringgrid1.cells[1,0]:='Дата';
Stringgrid1.cells[2,0]:='Дата оплаты';
Stringgrid1.cells[3,0]:='Дата приход.товара';
Stringgrid1.cells[4,0]:='Номер';
Stringgrid1.cells[5,0]:='Наименование поставщика ';
Stringgrid1.cells[6,0]:='ИНН поставщика';
Stringgrid1.cells[7,0]:='стоимость';
Stringgrid1.cells[8,0]:='Кол-во покупок';
    ///Загруска нумерации таблицы
   AssignFile(fa,'grid.dat');
      Reset(fa);
      i:=0;
      while not(EOF(fa)) do
        begin
          inc(i);
          read(fa,a);
          StringGrid1.RowCount:=i+1;
          with StringGrid1 do
            begin
              Cells[0,i]:=a.zapis;
           end;
        end;
       kol:=StrToInt(a.zapis);
      CloseFile(fa);
      BaseChange:=false;
   //Загруска цвета таблицы
   AssignFile(fb,'color.tab');
    reset(fb);
     read(fb,b);
    StringGrid1.Color:=b.Svet;
  CloseFile(fb);
end;

{Переход к другой форме}
procedure TForm1.N6Click(Sender: TObject);
begin
form2.Visible:=true;
end;


{Закрытие програмы}
procedure TForm1.N4Click(Sender: TObject);
begin
if MessageBox(form1.Handle,'Вы уверены что хотите выйти?',
                  'Внимание!',MB_ICONQUESTION+MB_YESNO)=IDYES then
 form1.close;
end;

{Процедура сохранения}
procedure TForm1.SaveToFile;
var
  Fa:File of a1;
  i:integer;
begin
      AssignFile(fa,'grid.dat');
      ReWrite(fa);
      for i:=1 to StringGrid1.RowCount-1 do
        begin
          with StringGrid1 do
            begin
              a.zapis:=Cells[0,i];
              a.data:=StrToDate(Cells[1,i]);
              a.Data_oplati:=StrToDate(Cells[2,i]);
              a.Data_Prihoda:=StrToDate(Cells[3,i]);
              a.Nomer:=Cells[4,i];
              a.Naimenovanie:=Cells[5,i];
              a.Inn_posyavshika:=Cells[6,i];
              a.stoimost:=StrToFloat(cells[7,i]);
              a.Kol_vo_pokupok:=StrToInt(cells[8,i]);
              a.grid:=strtoint(a.zapis);
            end;
          write(fa,a);
        end;
      CloseFile(fa);
      BaseChange:=false;
    end;

    {Процедура загруски}
procedure TForm1.LoadFromFile;
var
  Fa:File of a1;
  a:a1;
  i:integer;
begin
      AssignFile(fa,'grid.dat');
      Reset(fa);
      i:=0;
      while not(EOF(fa)) do
        begin
          inc(i);
          read(fa,a);
          StringGrid1.RowCount:=i+1;
          with StringGrid1 do
            begin
              Cells[0,i]:=a.zapis;
              Cells[1,i]:=DateToStr(a.data);
              Cells[2,i]:=DateToStr(a.Data_oplati);
              Cells[3,i]:=DateToStr(a.data_Prihoda);
              cells[4,i]:=a.nomer;
              Cells[5,i]:=a.Naimenovanie;
              Cells[6,i]:=a.Inn_posyavshika;
              cells[7,i]:=FloatToStr(a.stoimost);
              Cells[8,i]:=IntToStr(a.Kol_Vo_pokupok);
            end;
        end;
      CloseFile(fa);
      BaseChange:=false;
    end;

{Открытие файла}
procedure TForm1.N2Click(Sender: TObject);
begin
StringGrid1.Visible:=true;
  if (StringGrid1.Cells[0,1]<>'')and BaseChange then
    if MessageBox(form1.Handle,'Сохранить текущую базу?',
                  'Внимание!',MB_ICONQUESTION+MB_YESNO)=IDYES then
      SaveToFile;
  LoadFromFile;
  Memo1.Lines.Add('>>> Файл загружен с жесткого диска  <<<')
end;
{Сохранения файла}
procedure TForm1.N3Click(Sender: TObject);
begin
  if MessageBox(form1.Handle,'Сохранить текущую базу?',
    'Внимание!',MB_ICONQUESTION+MB_YESNO)=IDYES then
    SaveToFile;
    Memo1.Lines.Add('>>> Файл сохранен на жестком диске <<<')
end;


добвление записи:

Код

unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ExtCtrls, ComCtrls, Menus;

type
    b1=record
    post:String[20];
    end;
  TForm2 = class(TForm)
    ComboBox1: TComboBox;
    LabeledEdit1: TLabeledEdit;
    LabeledEdit2: TLabeledEdit;
    LabeledEdit3: TLabeledEdit;
    BitBtn1: TBitBtn;
    CheckBox1: TCheckBox;
    LabeledEdit4: TLabeledEdit;
    PopupMenu1: TPopupMenu;
    DateTimePicker1: TDateTimePicker;
    DateTimePicker2: TDateTimePicker;
    DateTimePicker3: TDateTimePicker;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    procedure BitBtn1Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
  public
    { Public declarations }
  end;
var b:b1;
    fb:file of b1;
data,Data_oplati,Data_prihoda:TDate;
Nomer,Naimenovanie,Inn_posyavshika:string[20];
Kol_Vo_pokupok:Integer;
stoimost:Integer;
firma,Firma_Name:ShortString;
i,k:integer;
Form2: TForm2;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm2.BitBtn1Click(Sender: TObject);
begin
 i:=i+1;
 Kol:=kol+1;
 Naimenovanie:=ComboBox1.Text;
 Data:=DateTimePicker1.date;
 Data_oplati:=DateTimePicker2.date;
 Data_Prihoda:=DateTimePicker3.date;
 Nomer:=LabeledEdit1.text;
 Inn_posyavshika:=LabeledEdit2.Text;
 stoimost:=StrToInt(LabeledEdit3.text);
 Kol_Vo_Pokupok:=StrToInt(LabeledEdit4.text);
{-----------------------------------------------------------}
 form1.stringgrid1.cells[0,i]:=IntToStr(Kol);
 form1.stringgrid1.cells[1,i]:=DateToStr(data);
 form1.stringgrid1.cells[2,i]:=DateToStr(data_Oplati);
 form1.stringgrid1.cells[3,i]:=DateToStr(data_Prihoda);
 form1.stringgrid1.cells[4,i]:=Nomer;
 form1.stringgrid1.cells[5,i]:=Naimenovanie;
 form1.stringgrid1.cells[6,i]:=Inn_posyavshika;
 form1.stringgrid1.cells[7,I]:=FloatToStr(stoimost);
 form1.stringgrid1.cells[8,I]:=IntToStr(Kol_Vo_pokupok);
 form1.StringGrid1.RowCount:=Kol+1;
{----------------------------------------------------------}
 form2.Visible:=false;
 LabeledEdit1.Clear;
 LabeledEdit2.Clear;
 LabeledEdit3.Clear;
 LabeledEdit4.Clear
end;


Проблема описана выше!
PM MAIL   Вверх
Guedda
Дата 13.11.2006, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Цитата(MrDmitry @  12.11.2006,  17:55 Найти цитируемый пост)
файл пытаюсь добавить в архиве rar 

Кинь в zip, и всё получится. Только без exe-шника. Мне же ещё нужны dpr, dfm и тому подобное.


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
MrDmitry
Дата 13.11.2006, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Вот!

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  _______.zip 55,62 Kb
PM MAIL   Вверх
Reptile
  Дата 15.11.2006, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 30.9.2006
Где: Украина, Первомай ск

Репутация: нет
Всего: 3



Вот лови  smile  Я кое-что подправил, но ошибок еще много .  smile 

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  Book.rar 55,05 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0771 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.