Другие языки программирования и технологии
	
		
		
								
				
								
				
								
				
			
	
		
			Turbo Pascal (файлы)
В символьном файле записаны слова, разделенные пробелами. Удалить из файла слова, состоящие менее чем из трех букв, и лишние пробелы. Мой исходник: program zz;  var  file:file of char; begin  assign(file,'file.txt');  rewrite(file);  writeln('Ведите строку слов:');  read(file);  i:=i+1;  while not eof(file) do  begin  while not eof(file) do  i:=i+1  if file(i)=' '  then k:=i+1;   delete(file;i,j)  end; end. Все вроде бы шло гладко но вот остановилсяна проблеме запоминания позицый пробелов... Внесите пожалуйстакорективы
	
	
	запоминание позиции не проблема, для этого функция filepos() существует. а коррективы в твою программу внести невозможно, ее надо просто удалить и написать заново, потому как в данной последовательности операторов нет никакого смысла: 
rewrite(file); - создаешь новый файл и открываешь его для записи
writeln('Ведите строку слов: '); - выводишь на экран это сообщение, видимо, пользователь будет пытаться что-то ввести
read(file); - вроде бы читаешь из пустого файла, открытого для записи, только что и куда оно помещается?
i:=i+1; - неведомое значение неведомой переменной увеличивается на 1
while not eof(file) do - пока не конец файла (а раз он пуст, то уже конец)
begin
while not eof(file) do - снова пока не конец файла, но уже внутри другого такого же цикла, внешний цикл выполнится только 1 раз
i:=i+1 - неведомое значение неведомой переменной опять увеличивается на 1
if file(i)=' ' - file - не функция, а служебное слово, поэтому file(i) в принципе не существует
then k:=i+1;
 
delete(file;i,j) - эта функция применяется для удаления из строки, а не из файла
end;
				
							rewrite(file); - создаешь новый файл и открываешь его для записи
writeln('Ведите строку слов: '); - выводишь на экран это сообщение, видимо, пользователь будет пытаться что-то ввести
read(file); - вроде бы читаешь из пустого файла, открытого для записи, только что и куда оно помещается?
i:=i+1; - неведомое значение неведомой переменной увеличивается на 1
while not eof(file) do - пока не конец файла (а раз он пуст, то уже конец)
begin
while not eof(file) do - снова пока не конец файла, но уже внутри другого такого же цикла, внешний цикл выполнится только 1 раз
i:=i+1 - неведомое значение неведомой переменной опять увеличивается на 1
if file(i)=' ' - file - не функция, а служебное слово, поэтому file(i) в принципе не существует
then k:=i+1;
delete(file;i,j) - эта функция применяется для удаления из строки, а не из файла
end;
Ну ты читай один файл, пиши в другой. А потом в случае необходимости замени старый файл новым. Либо просто выведи на экран новый файл.
				
							С пробелом у тебя проблема, вглядись в свою логическую ошибку, она у тебя в конце проги.
				
							Похожие вопросы
- Люди помогите пожалуйста....Кто понимает TURBO PASCAL
- Помогите сделать задания по програмированию(двумерные массивы)Turbo Pascal
- Как вставить текст в Turbo Pascal 7.1???
- Turbo Pascal
- Объясните смысл прогаммы в Turbo Pascal
- Я в коледже Turbo Pascal прохожу. Скажите он вообще где нибудь нужен? Может Turbo Pascal морально устарел?
- DOS OC или создание ОС на Turbo Pascal
- turbo pascal 7.0 Определить принадлежность к области точек с заданными координатами!!!
- Помогите с Turbo Pascal
- Как задать разрешение окна в графическом режиме Turbo Pascal??? Alt-Enter не предлагать!!
