Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 17.01.2011, 09:17   #1
Uroboros
Новичок
Пользователь
 
Регистрация: 17.01.2011
Сообщений: 12
Репутация: 10
По умолчанию Сортировка в списке

Бьюсь всю ночь ничего не получается, помогите хоть чем: необходиомо, чтобы программа открывала список , состоящий из текст1;символ;текст2 и сортировала список по алфавиту после символа...
Пример:
парам пам пам | пам => пам парам пам | амп
пам парам пам | амп => пам пам парам | мпа
пам пам парам | мпа => парам пам пам | пам

Последний раз редактировалось Uroboros; 17.01.2011 в 09:19.
Uroboros вне форума   Ответить с цитированием
Старый 17.01.2011, 09:58   #2
evg_m
Профессионал
 
Регистрация: 20.04.2008
Сообщений: 4,742
Репутация: 2097
По умолчанию

Цитата:
Бьюсь всю ночь ничего не получается,
И не получится пока не начнете писать код.
__________________
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме   Ответить с цитированием
Старый 17.01.2011, 10:00   #3
Uroboros
Новичок
Пользователь
 
Регистрация: 17.01.2011
Сообщений: 12
Репутация: 10
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
И не получится пока не начнете писать код.
Код:

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label6: TLabel;
    Memo1: TMemo;
    Memo2: TMemo;
    Memo3: TMemo;
    Button3: TButton;
    Button4: TButton;
    BitBtn1: TBitBtn;
    Button5: TButton;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    procedure FormCreate(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  Type stud=record
        fam,adr,bed:string[200];
         end;
var
  Form1: TForm1;
  f:file of stud;
  ft:textfile;
  w:stud;
  fname,fnamet:string;
  s:string;
  a:array [1..100]  of stud;
  n,i:integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
memo1.Clear; memo2.Clear; memo3.Clear;
edit1.Clear; edit2.Clear; edit3.Clear;
end;


procedure TForm1.Button3Click(Sender: TObject);
begin
  OpenDialog1.Title:='Открыть файл';
  if OpenDialog1.Execute then
    begin
      fname:=OpenDialog1.Filename;
      AssignFile(f,fname);
      Reset(f);
    end;
  memo1.clear;  memo2.clear;  memo3.clear;
    While not  eof(f) do
    begin
    read(f,w);
    memo1.lines.add(w.fam);
    memo2.lines.add(w.adr);
    memo3.lines.add(w.bed);
    end;
  CloseFile(f);
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  SaveDialog1.Title:='Сохранить в текстовом файле';
  SaveDialog1.DefaultExt:='.txt';
  if SaveDialog1.Execute then
    begin
    fnamet:=SaveDialog1.FileName;
    AssignFile(ft,fnamet);
    Rewrite(ft);
    end;
  reset(f);
while not eof(f) do
    begin
    read(f,w);
    with w do
        writeln(ft,fam:10,adr:10,bed:10);
    end;
closeFile(f);
closeFile(ft);
end;

procedure TForm1.Button5Click(Sender: TObject);
  var r,n:integer;

  begin
 memo1.clear; memo2.clear; memo3.clear;
 reset(f);
 n:=0;
          while not eof(f) do            //создаем массив записей
            begin
             read(f,w);
               inc(n);
               a[n]:=w;
                        end;


                for i:=1 to n-1 do       //сортируем их по алфавиту
                     for r:=1 to n-i do
                       if a[r].bed>a[r+1].bed then
                          begin
                                w:=a[r]; a[r]:=a[r+1];
                                a[r+1]:=w;
                          end;

      memo1.Lines.Add(a[i].fam);
      memo2.Lines.Add(a[i].adr);
      memo3.Lines.Add(a[i].bed);

     end;
        end.

Что не так? хелп...

Последний раз редактировалось Stilet; 17.01.2011 в 11:19.
Uroboros вне форума   Ответить с цитированием
Старый 17.01.2011, 13:40   #4
Uroboros
Новичок
Пользователь
 
Регистрация: 17.01.2011
Сообщений: 12
Репутация: 10
По умолчанию

Спасибо Stilet, что подправил, но увы я так и не дождался ответа.
Вот решение, если кому интересно...

Что надо изменить в процедуре Button3Click, чтобы открывало и закидывало правильно? Прикрепил программу с примером..
Основной смысл открыть txt файл и посортировать:
До:
фыва олдж|фыва
ячсм|зшщгуцк
апро йцук, екг|нгшщ
После:
ячсм|зшщгуцк
апро йцук, екг|нгшщ
фыва олдж|фыва

мда, более 150 просмотров и ни одного совета, спасибо за помощь...
Вложения
Тип файла: rar 2.rar (3.8 Кб, 3 просмотров)
Тип файла: rar 3.rar (10.3 Кб, 2 просмотров)

Последний раз редактировалось Stilet; 18.01.2011 в 19:26.
Uroboros вне форума   Ответить с цитированием
Старый 18.01.2011, 01:44   #5
Uroboros
Новичок
Пользователь
 
Регистрация: 17.01.2011
Сообщений: 12
Репутация: 10
По умолчанию

Вот уже почти полный код программы, осталось только найти причину(ошибка где-то в Button3), почему при открытии готового файла, программа его не редактирует ...

procedure TForm1.FormCreate(Sender: TObject);
begin
memo1.Clear; memo2.Clear; memo3.Clear;
edit1.Clear; edit2.Clear; edit3.Clear;
button1.Enabled:= false;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
w.fam:=edit1.Text; //ввод значений
w.adr:=edit2.Text;
w.bed:=edit3.Text;
write(f,w);
memo1.Lines.Add(w.fam);
memo2.Lines.Add(w.adr);
memo3.Lines.Add(w.bed);
edit1.Clear; edit2.Clear; edit3.Clear;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
SaveDialog1.Title:='Создать файл';
SaveDialog1.DefaultExt:='.txt';
if SaveDialog1.Execute then
begin
fname:=SaveDialog1.FileName;
AssignFile(f,fname);
Rewrite(f);
end;
button1.Enabled:=true;
end;


procedure TForm1.Button3Click(Sender: TObject);
var i:integer;
begin
OpenDialog1.Title:='Открыть файл';
if OpenDialog1.Execute then
fname:=OpenDialog1.Filename;
memo1.clear; memo2.clear; memo3.clear;
assignfile(ft,fname);
reset(ft);
readln(ft,s);
if pos('|',s)<>0 then
begin
closefile(ft);
assignfile(ft,fname);
reset(ft);
while not eof(ft) do
begin
readln(ft,s);
memo1.Lines.Add(copy(s,1,pos('|',s)-1));
memo2.Lines.Add('|');
memo3.Lines.Add(copy(s,pos('|',s)+1 ,length(s)));
end;
closefile(ft);
end
else
begin
AssignFile(f,fname);
Reset(f);
While not eof(f) do
begin
read(f,w);
memo1.lines.add(w.fam);
memo2.lines.add(w.adr);
memo3.lines.add(w.bed);
end;
CloseFile(f);
end;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
SaveDialog1.Title:='Сохранить в текстовом файле';
SaveDialog1.DefaultExt:='.txt';
if SaveDialog1.Execute then
begin
fnamet:=SaveDialog1.FileName;
AssignFile(ft,fnamet);
Rewrite(ft);
end;
writeln(ft);

reset(f);
while not eof(f) do
begin
read(f,w);
with w do
writeln(ft,fam:0,adr:0,bed:0);
end;
closeFile(f);
closeFile(ft);
end;

procedure TForm1.Button5Click(Sender: TObject);
var r,n:integer;

begin
memo1.clear; memo2.clear; memo3.clear;
reset(f);
n:=0;
while not eof(f) do //создаем массив записей
begin
read(f,w);
inc(n);
a[n]:=w;
end;


for i:=1 to n do
begin //сортируем их по алфавиту
for r:=i+1 to n do
if a[r].bed<a[i].bed then
begin
w:=a[i]; a[i]:=a[r];
a[r]:=w;
end;

memo1.Lines.Add(a[i].fam);
memo2.Lines.Add(a[i].adr);
memo3.Lines.Add(a[i].bed);
end;
closefile(f);
end;
end.
Вложения
Тип файла: zip 31.zip (215.8 Кб, 1 просмотров)
Uroboros вне форума   Ответить с цитированием
Старый 18.01.2011, 17:02   #6
Uroboros
Новичок
Пользователь
 
Регистрация: 17.01.2011
Сообщений: 12
Репутация: 10
По умолчанию Бред

Изменил мнение...

Последний раз редактировалось Uroboros; 18.01.2011 в 21:42.
Uroboros вне форума   Ответить с цитированием
Старый 18.01.2011, 17:17   #7
vovk
!=
Профессионал
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,762
Репутация: 424
По умолчанию

Что вы тавк ужасно кричите, как будто мы заняли у вас 100 рублей и не берём телефон? У всех есть свои дела, своё свободное время. Многие когда не очень много времени просматривают темы где мало ответов, у вас тут очень много постов, просто считают что идёт обсуждение.

Сейчас посмотрю попробую помочь.
vovk вне форума   Ответить с цитированием
Старый 18.01.2011, 17:27   #8
Uroboros
Новичок
Пользователь
 
Регистрация: 17.01.2011
Сообщений: 12
Репутация: 10
По умолчанию

ну да, все посты мои=) а кричу я от безисходности, второй день на форуме сижу и мозг ломаю, что не так..спасибо.
Uroboros вне форума   Ответить с цитированием
Старый 18.01.2011, 17:32   #9
vovk
!=
Профессионал
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,762
Репутация: 424
По умолчанию

так ещё раз, просто уточнить, нужно чтоб в memo3 список был отсортированый? больше ничего?
vovk вне форума   Ответить с цитированием
Старый 18.01.2011, 17:40   #10
Uroboros
Новичок
Пользователь
 
Регистрация: 17.01.2011
Сообщений: 12
Репутация: 10
По умолчанию

извини вторую страницу не заметил(
тоесть беру загружаю файл, редактирую в программе(сортирую по ответу) и сохраняю, надо чтобы во всех трех мемах строчки сдвигались
Uroboros вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
удаление в списке zhenya.ya Помощь студентам 0 07.06.2010 21:08
ЗАмена в списке meizy Помощь студентам 2 03.06.2010 22:31
Поиск в односвязном списке DOJ Общие вопросы C/C++ 6 04.10.2009 13:34
поиск IP в списке TaTT DoGG PHP 6 13.08.2008 18:53


09:56.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru