Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
RGZ
0 / 0 / 0
Регистрация: 05.06.2013
Сообщений: 1
1

Поиск строки максимальной длины строки файла и вывод в другой файл

09.06.2013, 00:57. Просмотров 393. Ответов 0
Метки нет (Все метки)

Помогите пожалуйста. У меня задание найти строку максимальной длины в одном файле и вывод её в другой файл. Но программа почему то выдаёт неправильные ответы а почему не могу понять. Вот текст программы:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
program Lab5;
uses crt;
type
  dynarr=array [0..0] of char;
  LongStr=record
    Str:^dynarr;
    Length:integer;
  end;
 
function ReadFiletoArray(var fData:LongStr; fni:string):boolean;
var
  f:file of char;
  i:integer;
  ch:char;
 
begin
  ReadFiletoArray:=true;
  assign(f,fni);
  {$I-}
  reset(f);
  {$I+}
  if IOResult<>0 then ReadFiletoArray:=false
  else
    begin
      fData.Length:=FileSize(f);
      Getmem(fData.Str,fData.Length*sizeof(char));
      if fData.Str=nil then
      begin
        ReadFiletoArray:=false;
        close(f);
      end
      else
        begin
          i:=0;
          while not(EOF(f)) do
          begin
            read(f,ch);
            fData.Str^[i]:=ch;
            inc(i)
          end;
          close(f);
        end;
    end;
end;
 
 
procedure SeaMaxStr(const fData:LongStr; var stpos,LengthStr:integer);
var
  i:integer;
  state:boolean;
  curpos:integer;
  LengthCur:integer;
begin
  state:=true;
  LengthStr:=0;
  stpos:=0;
  curpos:=0;
  for i:=0 to fData.Length - 1 do
  begin
    if state then
    begin
      if fData.Str^[i]=#13 then
      begin
        LengthCur:=i-curpos;
        if LengthCur > LengthStr then
        begin
          LengthStr:=LengthCur;
          stpos:=curpos;
        end;
      end
    else
    begin
      if fData.Str^[i+1]<>#10 then
      begin
        state:=true;
        curpos:=i;
      end;
    end;
  end;
end;
end;
 
 
function Output(const fno:string; fData:LongStr;stpos,LengthStr:integer):boolean;
var
  i:integer;
  f1:text;
begin
  Output:=true;
  assign(f1,fno);
  {$I-}
  rewrite(f1);
  {$I+}
  if IOResult<>0 then Output:=false
  else
    begin
      for i:=stpos to LengthStr do
 
        {write(f1,fData.Str^[i]);}
      close(f1);
    end;
end;
 
var
  fni,fno:string;
  fData:LongStr;
  t:boolean;
  stpos,LengthStr:integer;
begin
  write('Введите имя входного файла:');
  readln(fni);
  write('Введите имя выходного файла*:');
  readln(fno);
  t:=ReadFiletoArray(fData,fni);
    if t=false then writeln('Файл не прочитан или не хватает памяти')
    else
      begin
        SeaMaxStr(fData,stpos,LengthStr);
        t:=Output(fno,fData,stpos,LengthStr);
          if t=false then writeln('Файл не создан**')
      end;
      readln;
end.
При вводе файла со следующем содержимом:
12
345
6
7
Он мне выдаёт ответ 2. А вот почему не знаю. Помогите пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2013, 00:57
Ответы с готовыми решениями:

Переписать в другой текстовый файл те строки из первого файла, в которых сумма чисел не четна.
В первом текстовом файле содержатся строки, состоящие из нескольких слов. Под словом...

Слить две строки, вставив символы одной строки между символами другой строки
Строка a из n символов лексикографически меньше строки b из n символов, если существует такой...

Имеется текстовый файл. Переписать его строки в другой файл.
Имеется текстовый файл. Переписать его строки в другой файл. Порядок строк во втором файле должен...

Поиск в одномерном целочисленном массиве кольца максимальной длины
Прошу мне помочь решить эту задачу... Поиск в одномерном целочисленном массиве кольца...

Имеется текстовый файл. Переписать в другой файл все его строки с заменой в них символа 0 на символ 1 и наоборот.
Имеется текстовый файл. Переписать в другой файл все его строки с заменой в них символа 0 на...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2013, 00:57

Дан текстовый файл. Отсортируйте его строки в порядке возрастания длины
Дан текстовый файл. Отсортируйте его строки в порядке возрастания длины. Отсортированный текст...

В текстовом файла найдите строку максимальной длины
Пусть дан текстовый файл. найдите строку максимальной длины

Дописать в файл f строки из файла g, которых нет в файле f . Файл g уничтожить
Даны файлы f и g, содержащие строки. Дописать в файл f строки из файла g, которых нет в файле f ....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru