|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.09.2011, 12:48 | #11 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
AssignFile тоже. И CloseFile )
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
22.09.2011, 14:13 | #12 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
ну, тогда ещё вместо Assign надо использовать AssignFile() и вместо Close() - CloseFile() только это пустое. Там в файле запятые разделяют числа. Они не дадут нормально отработать предложенному алгоритму... если возможно заменить запятые на пробелы, тогда сработает такой код: Код:
Последний раз редактировалось Serge_Bliznykov; 22.09.2011 в 14:17. |
|
23.09.2011, 16:20 | #13 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
Alex11223, я уже писал в одной из тем, AssignFile и.т.п это пережитки 80-х годов прошлого тысячелетия, которым пользуются господа Сишники.
Код:
95% сбоев и ошибок приложений, находится в полу метрах от монитора
|
23.09.2011, 23:52 | #14 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
JUDAS,
1) C тут не при чём! это скорее пережитки классического Паскаля ( TurboPascal ). Вы не поверите, но там не было TStringList, который Вы используете во всех случаях, когда нужно прочитать файл. 2) файлы бывают не только текстовые! В этом случает .LoadFromFile - "отдыхает" 3) автор темы выложил(а) файлик "ВЗУ-2 Ввод-1 мощность.txt". Он всего 10 кб. Скачайте его. И убедитесь, что предложенный Вами код - НЕ РАБОТАЕТ с этим файлом. |
24.09.2011, 01:00 | #15 |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
Вот у меня вопрос для целей собственного развития.
А ведь можно не выделяя дополнительный массив и не заводя второй файл заменить каждое число его произведением на некоторое число, использую при этом процедуру Seek, чтобы установить позицию записи/считывания на конкретное место в файле? Лично у меня подобным образом прокатывало, но у меня правда был типизированный файл записей (File of rec, где rec - записи). Я так же устанавливал сиком позицию в необходимое место и менял поле у записи, не заводя дополнительную переменную типа запись и не создавая второй файл. |
24.09.2011, 08:25 | #16 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Вадим, в данном случае такой подход практически неприменим.
Дело в том, что исходный файл текстовый. Следовательно, при умножении исходного числа на 1200 изменяется количество разрядов, которое занимает полученное произведение. А, следовательно, все остальные символы нужно сдвигать на эту разницу. |
25.09.2011, 11:08 | #17 | ||
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
Цитата:
В контестке обсуждаемой темы файл текстовый, если нужен бинарный для этого есть TFileStream ))) Цитата:
Как раз такий файл, нормальные программеры Делфи читают объектом класса TStringList. Демонстрирую : Код:
95% сбоев и ошибок приложений, находится в полу метрах от монитора
|
||
25.09.2011, 19:44 | #18 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
2) Ваш код не будет компилироваться на Delphi < 7 (ну не было в TSTringList свойства .Delimiter) (у меня Delphi 5, если что...) 3) а ничего, что полученный файл будет отличаться от исходного?! А не знаю, откуда взялась задача, но вполне допускаю, что нужно получить файл с таким же распределением чисел в строке, как и исходном. Или Вы решили, что это неважно? 4) ну и главное. Вы свой код проверяли?! Предложенный Вами код исходный файл запишет по одному числу в строке БЕЗ ИЗМЕНЕНИЙ. Т.е. умножений произведено вообще не будет ни разу! да и странно переводить через функцию StrToIntDef вещественные числа. И при этом, что характерно, ошибок код никаких не выдаёт... я понимаю, конечно, что это просто опечатка. Но тем не менее.. И я не понимаю, что Вы хотите доказать? Что данную задачу можно решить через TStringList ? Ну можно. и что? Цитата:
|
||
25.09.2011, 20:23 | #19 | |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
StrToFloatDef - разницы нет,. изначально былос казано файл с числами.
Цитата:
Для того чтобы получить такой же файл можно использовать простую строку S:string; и добавлять тупо значения S:=S+StrToFloatDef(SL.Strings[i], 0)*1400+SL.Delimiter; ----- А если по сути, то Вам как модератору стояло бы сообщить, чтобы каждый пользователь, хотя бы в подписи, указывал каким Делфи он пользуется (версию) тогда бы и не было непонятных динозавроподобных AssignFile и моих TStringList ))
95% сбоев и ошибок приложений, находится в полу метрах от монитора
|
|
25.09.2011, 21:17 | #20 | |||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Как же я устал с Вами спорить...
Цитата:
Потому что Вы исходный файл не качали и не смотрели. А там в файле 31 одна строка с числами (не считая пустых строк), в каждой строке с числами ровно 49 вещественных чисел. Вы же информацию о том, какие числа в какой строке были уже УТРАТИЛИ в своём примере кода! про такие мелочи как добавления числа к строке мы умолчим, понятно, что для этого можно использовать FloatToStr или Format() (последний много лучше, т.к. можно задать маску выводимых чисел). Цитата:
вот Вы и "взъелись" на простое нормальное (классическое) решение... Так ведь?! Цитата:
И раз автор темы (он же "заказчик") больше в теме не появлялась, значит либо её удовлетворило решение, либо она решила задачу по другому (в Excel, например), либо необходимость в задаче уже отпала... впрочем, в любом случае, продолжать нашу дисскуссию не вижу смысла. Доказать друг другу мы ничего не сможем, а впустую сотрясать воздух примерами кода и доказательствами своей правоты - бессмыслено. Впрочем, это я высказал исключительно своё мнение, ИМХО... |
|||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание txt файла | (Sandr) | C/C++ Сетевое программирование | 11 | 21.12.2010 23:04 |
Как скопировать текст с файла 1.txt и записать в 2.txt | Kasper1 | Общие вопросы по Java, Java SE, Kotlin | 1 | 14.12.2010 05:56 |
Delphi Извлечение данных из файла txt | ledenec | Помощь студентам | 2 | 07.04.2010 18:19 |
Повторное открытие файла txt для редактирования в delphi | Shaggrath | Помощь студентам | 8 | 20.07.2009 13:36 |
как запретить изменение текстового файла на delphi | BuT@JL | Помощь студентам | 1 | 28.02.2009 05:35 |