|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.11.2006, 20:43 | #1 |
Пользователь
Регистрация: 13.11.2006
Сообщений: 12
|
нужна ваша помощь
Друзья, нужна помощь начинающему программисту.
Хочу написать на мой взгляд не очень сложную программку в Delphi 7. Например есть файл созданный в блокноте - в нем 10 строк по 5 чисел от 1 до 10 (через пробел). Их нужно сделать переменными а потом подсчитать какое число больше всего встречалось в этих строках. Вроде всё |
13.11.2006, 23:28 | #2 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,501
|
1) нужно считать данные из файла, самое простое загрузить в memo. например, memo1.lines.loadfromfile('1.txt'), теперь можно уже работать с memo.
memo1.lines[0] ... |
14.11.2006, 00:08 | #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 создавать. ? Или все таки есть способы попроще? |
|
14.11.2006, 06:31 | #4 |
Павел Сергеевич
Форумчанин
Регистрация: 05.11.2006
Сообщений: 665
|
Ты немножко непонял, Alar имел ввиду, что из ОДНОГО файла, в котором как ты сказал есть десять строк по пять чисел, нужно загрузить в Memo все строки с помощью команды memo1.lines.loadfromfile('Имя файла'), а уже после работать с Memo, а не с самим файлом.
Познавая других, мы познаем себя.
С'est la vie... |
14.11.2006, 08:34 | #5 |
Delphi/C++/C#
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,972
|
Зря так делаете. Ничего загружать не надо, надо напрямик считывать в массив. Напомню одну важную вещь: если из текстового файла читать число (read(f,i); //где f:textfile, а i:integer), тогда бедет считано ОДНО число (до первого пробела). Таким образом не надо будет парится с распознаванием чисел (отслеживать пробелы, переводить строку в число и прочее...)
Как делать понятно? (могу код написать только вечером) |
14.11.2006, 15:58 | #6 | ||
Пользователь
Регистрация: 13.11.2006
Сообщений: 12
|
Цитата:
Но я попробовал только что, ниче не выходит. Если не сильно тяжело то напишите код. Цитата:
А вот как дальше с Memo работать? Как этот набор строк и чисел преобразовать в массив!? Последний раз редактировалось zetrix; 14.11.2006 в 18:39. |
||
14.11.2006, 16:09 | #7 | |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,501
|
Цитата:
нужно написать цикл от 0 до count-1 строки и считывать посимволно новое число до пробела, потом strtoint, в массив. Делай как посоветует zetrix, это классическое pascal решение. |
|
14.11.2006, 18:31 | #8 | |
Пользователь
Регистрация: 13.11.2006
Сообщений: 12
|
Цитата:
Ну преобразовать числа в массив, при помощи цикла для меня не проблема, только если они будут стоять не через пробел, а каждое число на разной строке, а мне нужно что бы в строке было не одно число А вот как считать посимвольно число до пробела? |
|
14.11.2006, 18:45 | #9 |
Павел Сергеевич
Форумчанин
Регистрация: 05.11.2006
Сообщений: 665
|
все просто - объявляешь строчку для буфера, если находишь цифру - добывляешь ее в строку-буфер, натыкаешься на пробел - преобразовываешь буфер в переменную, потом буфер чистишь и продолжаешь цикл.
Познавая других, мы познаем себя.
С'est la vie... |
14.11.2006, 18:58 | #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 |