Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
cjmaxik
1 / 1 / 0
Регистрация: 23.04.2011
Сообщений: 4
#1

В десяти полях Edit переставить местами числа так, чтобы они были отсортированны по убыванию - Delphi

23.04.2011, 09:52. Просмотров 1160. Ответов 6
Метки нет (Все метки)

Всем привет! Есть такая задача по Delphi:
"В десяти полях Edit переставить местами числа так, чтобы они были отсортированны по убыванию. Входные параметры брать из файла на диске и результаты её выполнения сохранять в файл на диск. Процес загрузки и записи необходимо выполнить с использованием меню и диалоговых окон. Запись и чтение в файл необходимо выполнить с применением функций для обработки файлов. Запись в файл с использованием невидимого поля Мемо1 запрещено. Файловая переменная должна быть описанна как переменная соответсвующего типизированного файла (т.е. числовая)."
Проблема встает при считывании файла с числами. Обычный textfile читает без проблем, а file of real нифига не читает.

Вот мое видение этого процесса:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
procedure TForm1.N3Click(Sender: TObject);
begin
           with OpenDialog1 do
                  if execute then
                     begin
                             assignFile(filin,filename);
                             {i-}
                             reset(filin);
                             {i+}
                      end;
           end;
           i:=0;
           while not EOF(filin) do
              begin
                   read(filin,s);
                   i:=i+1;
                   case i of
                      1 : Edit1.Text:=floattostr(s);
                      2 : Edit2.Text:=floattostr(s);
                      3 : Edit3.Text:=floattostr(s);
                      4 : Edit4.Text:=floattostr(s);
                      5 : Edit5.Text:=floattostr(s);
                      6 : Edit6.Text:=floattostr(s);
                      7 : Edit7.Text:=floattostr(s);
                      8 : Edit8.Text:=floattostr(s);
                      9 : Edit9.Text:=floattostr(s);
                     10 : Edit10.Text:=floattostr(s);
                   end;
 
             end;
Разумеется, это не верно (это я узнал позже, когда создал файл типа real)
Вместо 10 чисел в поля Edit выводятся 4 непонятных числа либо программа вообще зависает

У кого какие соображения на этот счет?

Содержимое файла:

5
3
4
15
15.5
189
13
0
14
15
http://www.cyberforum.ru/delphi-beginners/thread122028.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2011, 09:52
Я подобрал для вас темы с готовыми решениями и ответами на вопрос В десяти полях Edit переставить местами числа так, чтобы они были отсортированны по убыванию (Delphi):

Значения переменных X, Y, Z поменять местами так, чтобы они оказались упорядоченными по убыванию
Значения переменных X, Y, Z поменять местами так, чтобы они оказались...

Значение переменных x,y,z поменять местами так, чтобы они оказались упорядоченными по убыванию
значение переменных x,y,z поменять местами так, чтобы они оказались...

Значение переменных поменять местами так, чтобы они оказались упорядоченными по убыванию
значение переменных X,Y,Z поменять местами так,чтобы они оказались...

Переставить строки матрицы так, чтобы элементы первого столбца были упорядочены по невозрастанию
Заданная матрица,Х(n,n),n<=20. Разработать программу, которая переставляет...

Считать числа из файла так, чтобы они образовали максимально возможное число
Помогите пожалуйста написать программу а точнее, не могу сообразить, как,...

6
Zombi_sib
365 / 319 / 88
Регистрация: 26.05.2010
Сообщений: 744
Завершенные тесты: 1
23.04.2011, 10:16 #2
Если файл с цифрами забивал сам то и читает соответственно неправильно, запиши файл с данными программно и будет все читаться.
1
cjmaxik
1 / 1 / 0
Регистрация: 23.04.2011
Сообщений: 4
23.04.2011, 10:18  [ТС] #3
Цитата Сообщение от Zombi_sib Посмотреть сообщение
Если файл с цифрами забивал сам то и читает соответственно неправильно, запиши файл с данными программно и будет все читаться.
По условию задачи, мне нельзя использовать текстовые файлы в любом виде, только "числовые", назовем их так)
0
Zombi_sib
365 / 319 / 88
Регистрация: 26.05.2010
Сообщений: 744
Завершенные тесты: 1
23.04.2011, 10:50 #4
Может я не совсем понятно выразился чтоб подготовить типизированный числовой файл его надо создавать программно, а не руками.
1
cjmaxik
1 / 1 / 0
Регистрация: 23.04.2011
Сообщений: 4
23.04.2011, 11:58  [ТС] #5
Цитата Сообщение от Zombi_sib Посмотреть сообщение
Может я не совсем понятно выразился чтоб подготовить типизированный числовой файл его надо создавать программно, а не руками.
Ладно, попробуем так) Спасибо)

Добавлено через 1 час 5 минут
Тогда еще вопрос - как мне переписать содержимое файла в другой, изменив его тип. Вот мой вариант, нерабочий:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
assignfile(infile,filename);
                 reset(infile);
                 assignfile(tempfile,'C:\temp.tmp');
                 while not eof(infile) do
                      begin
                           readln(infile, blabla);
                           blabla1:=strtofloat(blabla);
                           rewrite(tempfile);
                           write(tempfile, blabla1);
                      end;
                 closefile(infile);
                 closefile(tempfile);
0
tima-mary
0 / 0 / 1
Регистрация: 21.04.2011
Сообщений: 11
03.05.2011, 12:58 #6
Помогите пожалуйста написать программу в Дельфи!

Даны 2 файла целых чисел, упорядоченных по невозрастанию. Объединить компоненты обоих файлов в одном файле, также упорядоченном по невозрастанию!
0
cjmaxik
1 / 1 / 0
Регистрация: 23.04.2011
Сообщений: 4
03.05.2011, 13:03  [ТС] #7
Цитата Сообщение от tima-mary Посмотреть сообщение
Помогите пожалуйста написать программу в Дельфи!

Даны 2 файла целых чисел, упорядоченных по невозрастанию. Объединить компоненты обоих файлов в одном файле, также упорядоченном по невозрастанию!
По правилам форума, создай новую тему с вопросом!
1
03.05.2011, 13:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2011, 13:03
Привет! Вот еще темы с решениями:

Как сделать так чтобы вводились только числа в Edit?
Мне нужно чтобы Edit был всегда integer.

Переставить цифры числа так, чтобы получить максимально возможное число, записанное теми же цифрами
Дано натуральное число. Переставить его десятичные цифры так, чтобы получить...

Переместить элементы массива так, чтобы в конце массива были все отрицательные числа
Дан массив. Переместить его элементы таким образом, чтобы в конце массива были...

TabControl - сделать так, чтобы на первой странице были одни элементы, а на другой были другие элементы
Есть tabControl. Хочу сделать так, чтобы на первой странице были одни элементы,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru