![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 13.11.2006
Сообщений: 12
|
![]()
Друзья, нужна помощь начинающему программисту.
![]() Хочу написать на мой взгляд не очень сложную программку в Delphi 7. ![]() Например есть файл созданный в блокноте - в нем 10 строк по 5 чисел от 1 до 10 (через пробел). Их нужно сделать переменными а потом подсчитать какое число больше всего встречалось в этих строках. Вроде всё ![]() |
![]() |
![]() |
![]() |
#2 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,630
|
![]()
1) нужно считать данные из файла, самое простое загрузить в memo. например, memo1.lines.loadfromfile('1.txt'), теперь можно уже работать с memo.
memo1.lines[0] ... |
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 13.11.2006
Сообщений: 12
|
![]() Цитата:
Вот часть проги: var x,y,z:real; begin memo4.Clear; memo1.lines.loadfromfile('1.txt'); memo2.lines.loadfromfile('2.txt'); memo3.lines.loadfromfile('3.txt'); x:=strtofloat(memo1.text); y:=strtofloat(memo2.text); z:=strtofloat(memo3.text); ..... А если к примеру у меня будет не x,y,z а 100 таких переменных, то мне 100 файлов ***.txt создавать. ![]() Или все таки есть способы попроще? |
|
![]() |
![]() |
![]() |
#4 |
Павел Сергеевич
Форумчанин
Регистрация: 05.11.2006
Сообщений: 665
|
![]()
Ты немножко непонял, Alar имел ввиду, что из ОДНОГО файла, в котором как ты сказал есть десять строк по пять чисел, нужно загрузить в Memo все строки с помощью команды memo1.lines.loadfromfile('Имя файла'), а уже после работать с Memo, а не с самим файлом.
Познавая других, мы познаем себя.
С'est la vie... |
![]() |
![]() |
![]() |
#5 |
Delphi/C++/C#
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,972
|
![]()
Зря так делаете. Ничего загружать не надо, надо напрямик считывать в массив. Напомню одну важную вещь: если из текстового файла читать число (read(f,i); //где f:textfile, а i:integer), тогда бедет считано ОДНО число (до первого пробела). Таким образом не надо будет парится с распознаванием чисел (отслеживать пробелы, переводить строку в число и прочее...)
Как делать понятно? (могу код написать только вечером) |
![]() |
![]() |
![]() |
#6 | ||
Пользователь
Регистрация: 13.11.2006
Сообщений: 12
|
![]() Цитата:
Но я попробовал только что, ниче не выходит. ![]() ![]() Цитата:
А вот как дальше с Memo работать? Как этот набор строк и чисел преобразовать в массив!? ![]() Последний раз редактировалось zetrix; 14.11.2006 в 18:39. |
||
![]() |
![]() |
![]() |
#7 | |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,630
|
![]() Цитата:
нужно написать цикл от 0 до count-1 строки и считывать посимволно новое число до пробела, потом strtoint, в массив. Делай как посоветует zetrix, это классическое pascal решение. |
|
![]() |
![]() |
![]() |
#8 | |
Пользователь
Регистрация: 13.11.2006
Сообщений: 12
|
![]() Цитата:
Ну преобразовать числа в массив, при помощи цикла для меня не проблема, только если они будут стоять не через пробел, а каждое число на разной строке, а мне нужно что бы в строке было не одно число ![]() А вот как считать посимвольно число до пробела? |
|
![]() |
![]() |
![]() |
#9 |
Павел Сергеевич
Форумчанин
Регистрация: 05.11.2006
Сообщений: 665
|
![]()
все просто - объявляешь строчку для буфера, если находишь цифру - добывляешь ее в строку-буфер, натыкаешься на пробел - преобразовываешь буфер в переменную, потом буфер чистишь и продолжаешь цикл.
Познавая других, мы познаем себя.
С'est la vie... |
![]() |
![]() |
![]() |
#10 |
Delphi/C++/C#
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,972
|
![]() Код:
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
нужна ваша помощь! | forsy | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 19.05.2008 14:38 |
прога на С/С++(нужна ваша помощь) | AlterEgo | Помощь студентам | 1 | 09.09.2007 18:41 |