|
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 30
|
||||||
Чтение из внешнего файла массива и сортировка его24.04.2010, 23:28. Показов 6214. Ответов 21
Метки нет (Все метки)
Доброй ночи, уважаемые программисты........
![]() я больше не могу, я два дня сижу не отходя от компьютера, глазки в кучку, но ничего не помогает........ нужно разработать программу которая читала бы из внешнего файла, сортировала по возрастанию и распечатывала как одномерный массив в столбик числа( они в файле записаны в столбик)..... помогите пожалуйста..... Добавлено через 2 минуты вот код, который смогла написать...
0
|
||||||
| 24.04.2010, 23:28 | |
|
Ответы с готовыми решениями:
21
Чтение массива из файла и вывод его на экран Чтение из внешнего файла. |
|
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
||||||
| 25.04.2010, 00:08 | ||||||
|
На форме должны быть: кнопка, компонент типа TOpenDialog и компонент типа TMemo.
Файл - текстовый. В конце текстового файла должно быть не более одной пустой строки.
2
|
||||||
|
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 30
|
|
| 25.04.2010, 00:36 [ТС] | |
|
Mawrat, вы просто чудо)))
Золото))) Цены вам нет))) Спасибо огромнейшее))) ![]() Вы не представляете, что вы для меня сделали))) ![]() Добавлено через 6 минут Можно вам маленький вопросик? Для чего нам нужна //Величина приращения длины динамического массива//??
0
|
|
|
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
|||||||||||||
| 25.04.2010, 01:20 | |||||||||||||
Рад, что помог. ![]() ...Мы используем динамический массив. В этот массив мы записываем элементы, прочитанные из файла. Но мы не знаем заранее, сколько всего элементов в файле. Поэтому мы заранее не знаем какой длины понадобится массив. Именно поэтому использован динамический массив - т. к. его длину можно изменять. Действуем так - в начале длина массива Arr нулевая. Если в файле есть хотябы один элемент, то длина массива увеличивается на величину Capacity - т. е. в данном случае на 10:
В конце, когда мы прочитали все элементы из файла, выходим из цикла. В этот момент может оказаться, что длина массива больше количества элементов, которые в него записаны. Т. е., например, пускай на каком-то этапе длина массива равна 30 элементам. Если мы прочитали из файла 31-й элемент, то согласно алгоритму, мы увеличим длину массива на 10 и его длина станет равной 40 элементам. Потом, например, мы ещё пару элементов прочитали и записали их в массив. Получили в массиве 33 элемента. И тут мы достигли конца файла. Таким образом получилось, что в массив мы записали 33 элемента, а его длина равна 40 элементам. Вот поэтому после цикла идёт эта строка:
2
|
|||||||||||||
|
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 30
|
|
| 26.04.2010, 07:21 [ТС] | |
|
Вот это да)))
Вот это вам огромнейшее спасибо))) ![]() ![]() Добавлено через 19 часов 18 минут Извените, но опять нужна ваша помощь....... ![]() Если у меня в файле находятся числа с запятой, то программа не работае(((( Что делать???Где исправлять??? Я исправляла тип массива на string? тогда программа не вылетает - работает, но не правильно сортирует((
0
|
|
|
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
|||||||
| 26.04.2010, 09:40 | |||||||
|
пробел (#32), горизонтальная табуляция (#9), знак конца строки (#10), знак перевода строки (#13). Если использование запятой - это необходимо по каким-то причинам, тогда придётся делать самостоятельный разбор. Т. е. читаем строку, потом анализируем её и выделяем из неё число. В этом случае, если формат простой, например - в каждой строке идёт число, за ним без пробелов следует запятая и строка заканчивается - в этом случае анализ простой. Легче убрать из входного файла запятые (т. е. не записывать их в него на этапе создания). Тогда код изменять не придётся. Если запятые очень нужны, тогда так: Предположим в каждой строке файла расположено одно число, после которого следует одна запятая, далее - строка заканчивается. Тогда:
0
|
|||||||
|
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 30
|
||||||
| 26.04.2010, 18:46 [ТС] | ||||||
|
Что здесь не так, я не понимаю(((
![]() Добавлено через 10 минут
0
|
||||||
|
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
|
| 26.04.2010, 19:05 | |
|
Дашук, предлагаю сделать так. Выложи сюда текстовый файл, из которого надо данные брать. И я код соответствующий сформирую.
0
|
|
|
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 30
|
||||||
| 26.04.2010, 19:34 [ТС] | ||||||
|
У меня просто есть программа которая сначала записывает в файл данные из StringGrid в столбик, а потом из этого документа я должна считать данные и отсортировать по возрастанию.
0
|
||||||
|
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
|
| 26.04.2010, 19:49 | |
|
Судя по коду запятых в файле быть не должно. В каждую ячейку таблицы записывается только одно число?
Дашук, выложи сам файл, который программа формирует. - Я посмотрю. Или всю программу выложи. Можешь прямо здесь к сообщению присоединить. Или можешь залить на какой-нибудь файлообменник и мне в личку кинь ссылку и пароль.--- Полное условие значит какое? - В таблицу пользователь записывает какие-то целые числа. Потом жмёт кнопку. Эти числа записываются в файл. Потом жмёт другую кнопку - эти числа читаются, записываются в массив. Этот массив сортируется и выводится в Мемо. Так?
0
|
|
|
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 30
|
||||||
| 26.04.2010, 19:54 [ТС] | ||||||
|
Да, в таблице только одно число, но когда я описываю
0
|
||||||
|
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
|
| 26.04.2010, 20:02 | |
|
Ясно. Надо уточнить - значит в одной ячейке может быть несколько чисел, разделённых запятыми? Или только одно число?
--- В общем - в каждой ячейке одно число. На этом остановимся. Так, собственно, и должно быть. --- Прогу я подправлю и выложу здесь сегодня попозже.
1
|
|
|
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 30
|
|
| 26.04.2010, 20:07 [ТС] | |
|
Ну как, вот ожет быть (3), может быть (3,5) ну как бы не целое число три а три с половиной!!!
0
|
|
|
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
|
| 26.04.2010, 20:36 | |
|
Ну тогда значит, массив надо описать не как Integer, а как Extended.
Поэтому и проблемы, значит были. И функции тогда использовать не IntToStr() и StrToInt, а: FloatToStr() и StrToFloat().
1
|
|
|
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
||||||
| 26.04.2010, 21:14 | ||||||
|
В общем, вот рабочий вариант.
1
|
||||||
|
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 30
|
||||||
| 26.04.2010, 21:43 [ТС] | ||||||
|
Спасибо вам огромное)))
Вы на самом деле лучший))) Как вам так удается всё))) Вопросик))) Зачем и что означает это?
0
|
||||||
|
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
|||||||||||||||||||||
| 26.04.2010, 21:56 | |||||||||||||||||||||
|
Это перехват исключений (т. е. перехват ошибок).
Если при выполнении строки:
1
|
|||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 30
|
|
| 26.04.2010, 22:39 [ТС] | |
|
Спасиииииибоооооооо))
Только вот ещё вопрос))) Простите если уже надоела вам( ![]() А как сделать чтобы в файл выводил в нормальном виде, а то он сохраняет -5.60000000000000E+0001 9.80000000000000E-0001
0
|
|
|
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
|||||||
| 26.04.2010, 22:51 | |||||||
![]() --- Можно управлять форматом чисел при записи в файл. Например:
1
|
|||||||
|
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 30
|
|
| 26.04.2010, 23:00 [ТС] | |
|
Спасибо)))
Но это только так??? А других вариантов нет, чтобы сохранял прямо как число и есть на самом дела!
0
|
|
| 26.04.2010, 23:00 | |
|
Помогаю со студенческими работами здесь
20
Чтение данных из внешнего файла Чтение массива из файла, его преобразование и запись в другой файл Чтение массива из файла в textbox и сохранение его в виде матрицы Считывание одномерного массива из файла и его сортировка Чтение внешнего файла программой (.dat/.asm) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|