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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2016, 12:01   #111
OTGB
Форумчанин
 
Аватар для OTGB
 
Регистрация: 06.05.2015
Сообщений: 120
По умолчанию

Начал заново делать. Столкнулся с проблемой хочу. Хочу что бы мы в edit вводили логин и при нажатии кнопки ок, он в текстовом находил этот логин, и если он совпадает с тем что мы ввели в edit, то он выводит в memo1 информацию о пользователе. Проблема в том что когда я нажимаю на кнопку ок он выводит всю информацию.
Вложения
Тип файла: rar S.rar (172.3 Кб, 7 просмотров)

Последний раз редактировалось OTGB; 13.04.2016 в 13:50.
OTGB вне форума Ответить с цитированием
Старый 13.04.2016, 14:47   #112
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Memo1.Lines.LoadFromFile('D:\as\tekst.tx t');
Вот мы уже ВСЕ и показали.
Цитата:
Проблема в том что когда я нажимаю на кнопку ок он выводит всю информацию.
Грузить файл надо в какой-то StringList. И желательно делать это один раз. Пожалуй для этого пока подойдет formCreate.
Код:
datlist:=TStringList.Create;
datlist.LoadFromfile(...);
А в FormClose тогда можно будет аккуратно освободить память.
Код:
datlist.Free;
уж затем можно "просмотреть" datlist и нужную инфу(нужные строки) скопировать в Memo (показать пользователю).

P.S. А вы знаете что ВАШ файл данных НЕ СООТВЕТСТВУЕТ заявленной вами структуре данных (7 строк на запись) Желтым отмечены ожидаемые последние строки данных.
Изображения
Тип файла: jpg 2.JPG (34.7 Кб, 29 просмотров)
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Старый 13.04.2016, 14:54   #113
OTGB
Форумчанин
 
Аватар для OTGB
 
Регистрация: 06.05.2015
Сообщений: 120
По умолчанию

evg_m да я знал что не соответствует. Я это потом отредактирую когда разберусь с главной проблемой
OTGB вне форума Ответить с цитированием
Старый 13.04.2016, 15:00   #114
OTGB
Форумчанин
 
Аватар для OTGB
 
Регистрация: 06.05.2015
Сообщений: 120
По умолчанию

evg_m
Код:
datlist.Free;
пишет ошибку
Изображения
Тип файла: jpg фыфысфы.jpg (30.8 Кб, 133 просмотров)
OTGB вне форума Ответить с цитированием
Старый 13.04.2016, 15:02   #115
OTGB
Форумчанин
 
Аватар для OTGB
 
Регистрация: 06.05.2015
Сообщений: 120
По умолчанию

Посмотрите пожалуйста , может у меня что то лишнее написано в коде
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Edit1: TEdit;
    Label1: TLabel;
    Button2: TButton;
    MainMenu1: TMainMenu;
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
    ts: TStringList;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var s, filespisok: string; // строка пути к одному файлу из списка ts[i]
//строка текущее
  i, j: integer; //переменная для адресации по tsp[i], и вторая переменная
  //для поиска в search списке
  search: TStringList; //список, куда грузится файл

fam: string;
begin
  begin
  search := TStringList.Create;
  memo1.Clear;
    
fam := Trim(AnsiLowerCase(Edit1.text)); //убираем пробелы и приводим к общему регистру

for i := 0 to ts.Count - 1 do //просмотр списка с путями к файлам

  begin

    s := ts[i]; //загрузка i-го пути в строку
    search.clear; //чистка списка с содержимым загруженного файла


    if FileExists(s) then //если файл найден, то
    begin
      search.LoadFromFile(ts[i]); //загружаем его в список

         for j := 0 to search.count - 5 do
         //выполняем поиск по списку пока не последняя строка
      begin


         if ( (j mod 7)=1 )and ( Pos( fam,Trim(AnsiLowerCase(search[j]))) =1 ) then
             Memo1.Lines.add(''+ search[j+0]+', '+ search[j+1]+', '+ search[j+2]+', '+ search[j+ -1]+', '+ search[j+4] );

             end;


    end
    else
    begin
      ShowMessage('файл потерян!');
      Continue;

    end;


  end;

  search.free; //освобождаем память.
begin

end;
end;

  end;


procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
datlist.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
datlist:=TStringList.Create;
datlist.LoadFromfile('D:\as\tekst.txt');
end;

end.
OTGB вне форума Ответить с цитированием
Старый 13.04.2016, 16:15   #116
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну все верно. нужно описать datlist:

Код:
var
  Form1: TForm1;
  ts: TStringList;
  datlist: TStringList;
......




только мне ваша логика непонятна.
вот тут что
Цитата:
Код:
search := TStringList.Create;
  memo1.Clear;
    
fam := Trim(AnsiLowerCase(Edit1.text)); //убираем пробелы и приводим к общему регистру

for i := 0 to ts.Count - 1 do //просмотр списка с путями к файлам
что такое search ?! почему цикл по ts ? Вы ts не создали, не заполнили. будет ошибка access violation

Последний раз редактировалось Serge_Bliznykov; 13.04.2016 в 16:21.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.04.2016, 17:50   #117
OTGB
Форумчанин
 
Аватар для OTGB
 
Регистрация: 06.05.2015
Сообщений: 120
По умолчанию

Так, всё сделал переделав программу полностью. Теперь следующий вопрос. Нужно сделать добавление новой информации. Как можно это осуществить?
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Edit1: TEdit;
    Label1: TLabel;
    Button2: TButton;
    MainMenu1: TMainMenu;
    Edit2: TEdit;
    N1: TMenuItem;
    N2: TMenuItem;

    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
  private
    { Private declarations }

  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  datlist: TStringList;

implementation

uses Unit2;

{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);
begin
datlist:= TStringList.Create;
datlist.LoadFromfile('D:\as\tekst.txt');


end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
datlist.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
login,nom,fio,nomg,godg,merg,dipg:string; 
flag:Boolean;
 g, f:Textfile;
        begin
         assignfile (f,'D:\as\tgh.txt');
         Reset(f);
         flag:=false ;
         while not Eof(f) and not flag do begin
         Readln(f,login);
          readln(f,nom);
          Readln(f,fio);
          if login=Edit1.text then  begin
             flag:=True;

          end;
         end;
          CloseFile(f);
          if flag then begin
          edit2.text:=fio;
          assignfile (g,'D:\as\tekst.txt');
          reset(g);
          while not Eof(g) do begin
           readln (g,nomg);
           readln (g,godg);
           readln (g,merg);
           readln (g,dipg);
           if nomg=nom then begin
             memo1.Lines.Add(godg) ;
             memo1.Lines.Add(merg) ;
             memo1.Lines.Add(dipg) ;
           end;
          end;
        end;

        end;
procedure TForm1.N2Click(Sender: TObject);
begin
form2.show;
end;

end.
Вложения
Тип файла: rar ад.rar (169.1 Кб, 5 просмотров)
OTGB вне форума Ответить с цитированием
Старый 13.04.2016, 18:42   #118
OTGB
Форумчанин
 
Аватар для OTGB
 
Регистрация: 06.05.2015
Сообщений: 120
По умолчанию

На 2 форме сделал добавление но пишет ошибку
Код:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm2 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit4: TEdit;
    Label4: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
 var f: textfile;
begin
AssignFile(F, 'D:\as\tekst.txt');
Append(f);
Writeln(f,Edit4.Text);
Writeln(f,Edit1.Text);
Writeln(f,Edit2.Text);
Writeln(f,Edit3.Text);
CloseFile(f);
begin
  ShowMessage('Èíôîðìàöèÿ äîáàâëåíà!');
  form2.Close;


      end;
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
form2.Close;
end;

end.
ошибка в этой строке
Код:
Append(f);
Изображения
Тип файла: jpg фцуауфа.jpg (10.6 Кб, 137 просмотров)

Последний раз редактировалось OTGB; 13.04.2016 в 18:44.
OTGB вне форума Ответить с цитированием
Старый 14.04.2016, 09:50   #119
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Эта ошибка говорит о том, что вы файл открыли и не закрыли (см. unit1).
При повторной попытке открыть этот файл (читай "захватить его") - и получите ошибку 32

а ещё, зачем у Вас datlist, если Вы к нему в программе не обращаетесь?!

Последний раз редактировалось Serge_Bliznykov; 14.04.2016 в 09:53.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.04.2016, 11:26   #120
OTGB
Форумчанин
 
Аватар для OTGB
 
Регистрация: 06.05.2015
Сообщений: 120
По умолчанию

Serge_Bliznykov я потом уберу. И как эту ошибку исправить можно?
Как ещё можно сортировку сделать?

Последний раз редактировалось OTGB; 14.04.2016 в 11:27. Причина: Как можно ещё сартировку сделать?
OTGB вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строками в блокноте Lau Microsoft Office Word 11 10.08.2010 12:36
Написать в блокноте guffer Общие вопросы Delphi 10 23.08.2009 20:05
Цвет фона в блокноте. Alexxx92 Паскаль, Turbo Pascal, PascalABC.NET 4 18.05.2009 04:45
редактирование текста в блокноте. Kio Помощь студентам 16 21.07.2008 17:02
Как работает Замена в блокноте? Alar Софт 9 14.01.2008 11:07