Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 27.01.2020, 10:55   #21
archerix
Форумчанин
 
Регистрация: 13.09.2019
Сообщений: 119
По умолчанию

Ну вот, для начала хотелось бы проверку на пустую строку Но пока не придумалось так, чтобы за один цикл и не сильно углубляться в парсинг
archerix вне форума Ответить с цитированием
Старый 28.01.2020, 04:05   #22
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,607
По умолчанию

Цитата:
Сообщение от archerix Посмотреть сообщение
Мало ли какие причины. Если записывать как в примере, одна пустая строка уже появится. А может, кто-то открыл файл посмотреть и Enter нажал
Цитата:
Сообщение от NetSpace Посмотреть сообщение
а попадётся вам файл, которые пересылали много раз, изменяли содержимое, сохраняли и пересохраняли. и в нём будут по ошибке записаны не нули, а скажем буквы О.
Вот почему я и говорил о реальной задаче и о задаче сферического коня.
В реальной задаче такие вещи недопустимы по определению! Иначе ракеты так и будут падать.

Цитата:
Сообщение от archerix Посмотреть сообщение
Ну как что такое - строка, в которой нет ничего, кроме символа перехода строки?
Символы переВода строки LF(#10) и возврата каретки CR(#13) не являются частью строки. Это разделители строк. Таким образом пустой строкой следует считать наличие двух разделителей строк подряд.
northener вне форума Ответить с цитированием
Старый 28.01.2020, 21:14   #23
archerix
Форумчанин
 
Регистрация: 13.09.2019
Сообщений: 119
По умолчанию

Для начала давайте начнем с простого - проверки текущей строки на пустость Как можно в пределах одного цикла это сделать, не затевая полноценный парсинг, что-то пока не соображу.

Если вначале прокрутить
Код:
i:=0;
while not Eof(F) do
begin
Readln(F, S);
if S<>'' then i:=i+1;
end;
Writeln(i);
то выдается правильное число значащих строк. Потом можно циклом for считать числа без пустых строк вторым заходом.

Последний раз редактировалось archerix; 28.01.2020 в 22:17.
archerix вне форума Ответить с цитированием
Старый 29.01.2020, 08:41   #24
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,476
По умолчанию

как, как...
Код:
цикл по всем символам файла от 1 до последнего
{
   если (код символа = 32), то
   {
      запоминаем этот номер элемента A = 
      копируем строку с 1 символа по A-1    str1:= 
      копируем строку с символа A+1 до последнего     str2:=
      сшиваем строки вместе str1+str2  //в них уже не будет этого пустого симовла
}
}
на выходе должны будете иметь набор символов, где нет пустых строк
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 29.01.2020, 14:27   #25
archerix
Форумчанин
 
Регистрация: 13.09.2019
Сообщений: 119
По умолчанию

Мне кажется, проще написать небольшую функцию, которая разберет проверенную на "непустость" очередную строку на колонки

Я считывание как-то так себе представляю:
Код:
while not Eof(F) do
begin
Readln(F, S);
if S<>'' then Readln(S, i1, i2);
end;
где Readln(S, i1, i2) - некая в идеале готовая встроенная функция, которая, как из файла, забирает данные из строки. Есть ли такая? Ну, если нет, можно сделать самому.
archerix вне форума Ответить с цитированием
Старый 30.01.2020, 23:42   #26
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 2,168
По умолчанию

Писать самому. И чтоб функция была умной: проверяла корректность строки, формат ввода.
digitalis вне форума Ответить с цитированием
Старый 31.01.2020, 11:38   #27
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,476
По умолчанию

и ещё функцию добавь, когда будешь строку парсить, чтоб ещё в случае обнаружения вместо колонок цифр каких-то некультурных слов на "ху", "бл" и "шл" отправляла смс в полицию с адресом того, кто тебе дал этот файл.
и ещё чтоб все найденные словосочетания с "чёрный" или "blаck" меняла на более толерантное или нейтральное "загорелый" или "афроамериканец". по-любому препод пять поставит.
--------------
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 31.01.2020, 17:02   #28
archerix
Форумчанин
 
Регистрация: 13.09.2019
Сообщений: 119
По умолчанию

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

Как щас помню, на бейсике делали небольшую программку, которая на лабораторной по физике должна была пару формул подсчитать. У нас там было десять строчек формулы и несколько килобайтов другого текста - на экран выводились разноцветные цифры, под музыку падали с экрана, в общем, решили приколоться В смысле, вернув челюсть на место, препод проворчал что-то насчет избыточности
archerix вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как считать файл без расширения. С++ Nikzz Помощь студентам 3 24.10.2017 21:23
Экспорт всех колонок из ListView в .csv файл (Microsoft Excel) FleXik Общие вопросы Delphi 18 12.07.2015 21:10
Как побайтово считать файл GIF? Bubel Visual C++ 1 29.10.2011 02:23
Как побайтово считать файл GIF? Bubel Visual C++ 1 27.10.2011 11:44
Считать wav-файл С++ Skido Помощь студентам 4 30.01.2009 04:06


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS