У меня проблема с поиском определенных символов в текстовом файле. Проблема исходит от задачи подсчета абзацев в текстовом файле. Идея очевидна - два абзаца в текстовом файле разделены пустой строкой, это означает, что первый символ в этой строке - ASCII # 13, поэтому, если я сделаю процедуру, которая проходит через
Идея очевидна - два абзаца в текстовом файле разделены пустой строкой, это означает, что первый символ в этой строке - ASCII # 13, поэтому, если я сделаю процедуру, которая проходит через каждую строку в текстовом файле, и если первый символ в строке - ASCII # 13, затем счетчик увеличивается на 1. Но когда я это делаю, я получаю внешнюю ошибку SIGSEGV в строке, когда я запускаю программу. Это код -
procedure paragraphs(name:string) ;
var
line:string;
paragraphs:integer;
file:textfile
begin
assignfile(file, name) ;
reset(file);
paragraphs:=0;
while not eof(file) do
begin
readln(file,line);
if line[1]=#13 then //here is the error
paragraphs:=paragraphs+1;
end;
end;
Теперь, что странно, так это то, что у меня очень похожая процедура, которая подсчитывает общее количество слов, работает на той же основе и работает без ошибок
procedure words(name:string);
var
insideword:boolean ;
x,words:integer;
file:textfile;
line:string;
begin
assignfile(file, name);
reset(file);
words:=0;
while not eof(file) do
begin
insideword:=false;
readln(file,line);
for x:=1 to length(line) do
begin
if line[x]=' ' then insideword:=false //no problem here
else begin
if insidewords=false then words:=words+1;
insidewords:=true;
end;
end;
end;
end;
Я думал, что строки - это в основном массивы char, но я думаю, что строки, являющиеся динамическими массивами, в этом случае не позволяют мне использовать определенный индекс, хотя в основном это работает в процедуре Words, и я использую ту же идею - поиск динамический массив для конкретного символа. Но здесь мне нужно искать конкретный символ в первом указателе строки. Почему вышеупомянутые параграфы процедуры не работают? Любые идеи о том, как исправить процедуру, чтобы она отображала количество абзацев в текстовом файле?