Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
xJIEXx
1 / 1 / 0
Регистрация: 20.01.2010
Сообщений: 55
1

Определить среднее количество символов в строке данного файла.

26.01.2010, 00:30. Просмотров 2103. Ответов 11
Метки нет (Все метки)

Здравствуйте, вот написал создание и запись в файл, но не знаю как определить количество символов в строке. Помогите доделать программу.
Delphi
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
procedure TForm1.Button1Click(Sender: TObject);
var
f:TextFile;
st:String;
i:integer;
begin
AssignFile(f,'D:\1\1.txt');
{$I-}
Append(f);
if IOResult<>0 then
begin
{$I-}
Rewrite(f);
{$I+}
if IOResult<>0 then // ошибка создания файла
begin
ShowMessage('Ошибка создания файла');
Exit;
end;
end;
for i:= 0 to Memo1.Lines.Count do
WriteLn(F, Memo1.Lines[i]);
CloseFile(f);
end;
 
 
 
 
end.
0
Вложения
Тип файла: rar 1.rar (172.8 Кб, 25 просмотров)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2010, 00:30
Ответы с готовыми решениями:

Определить среднее количество символов в строке данного файла
1. Организовать текстовый файл состоящий из N строк. Определить среднее количество символов в...

Определить среднее количество символов в строке файла
Организовать текстовый файл состоящий из N строк. Определить среднее количество символов в строке...

Определить среднее количество символов в строке файла
Организовать текстовый файл, состоящий из N строк. Определить среднее количество символов в строке...

Определить среднее количество символов в строке файла
Организовать текстовый файл состоящий из N строк. Определить среднее количество символов в строке...

Определить количество различных символов и сколько раз каждый из этих символов встречается в строке
Здравствуйте. Есть вот такая задача: &quot;Составить программу, которая принимает строку символов,...

11
andrei63
141 / 135 / 69
Регистрация: 15.12.2009
Сообщений: 344
26.01.2010, 01:09 2
Delphi
1
2
3
4
5
var n:integer ;
begin
n:=length(edit1.text);// определяет длину строки
label1.Caption:=inttostr(n);
end;
как такой код
0
xJIEXx
1 / 1 / 0
Регистрация: 20.01.2010
Сообщений: 55
26.01.2010, 01:28  [ТС] 3
Цитата Сообщение от andrei63 Посмотреть сообщение
Delphi
1
2
3
4
5
var n:integer ;
begin
n:=length(edit1.text);// определяет длину строки
label1.Caption:=inttostr(n);
end;
как такой код
это конечно хорошо, но мне надо не длину строки, а среднее количество символов в строке данного файла
0
Страдалецъ
Тимуровец
444 / 284 / 50
Регистрация: 10.09.2009
Сообщений: 963
26.01.2010, 01:38 4
Delphi
1
2
for i:= 0 to Memo1.Lines.Count do
WriteLn(F, Memo1.Lines[i]);
Во первых это блок содержит ошибку, т.к. последний индекс выйдет за границу массива строк в мемо.
Во вторых, совершенно нет необходимости сохранение текста из мемо заворачивать в такую кучу кода. Все намного проще:

Delphi
1
2
3
4
procedure TForm1.Button1Click(Sender: TObject);
begin
 Memo1.Lines.SaveToFile('D:\1\1.txt');
end;
Если-же стоит задача озвученная в заголовке темы, то тогда можно сделать так:
Delphi
1
2
3
4
5
procedure TForm1.Button1Click(Sender: TObject);
begin
 Memo1.Lines.SaveToFile('D:\1\1.txt');
 Label1.Caption := IntToStr(Length(Memo1.Text) / Memo1.Lines.Count);
end;
1
26.01.2010, 01:38
xJIEXx
1 / 1 / 0
Регистрация: 20.01.2010
Сообщений: 55
26.01.2010, 01:44  [ТС] 5
Сделал вот так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure TForm1.Button1Click(Sender: TObject);
var
f:TextFile;
st:String;
i:integer;
begin
AssignFile(f,'D:\1\1.txt');
{$I-}
Rewrite(f);
{$I+}
if IOResult<>0 then // îøèáêà ñîçäàíèÿ ôàéëà
begin
ShowMessage('Îøèáêà ñîçäàíèÿ ôàéëà');
Exit;
end;
Memo1.Lines.SaveToFile('D:\1\1.txt');
CloseFile(f);
end;
Но выбивает ошибку:

Переделал ввод массива, дозаписывание посчитал лишнем.
0
Вложения
Тип файла: rar 1.rar (172.4 Кб, 23 просмотров)
Страдалецъ
Тимуровец
444 / 284 / 50
Регистрация: 10.09.2009
Сообщений: 963
26.01.2010, 01:53 6
Можно узнать, зачем вот это?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var
f:TextFile;
st:String;
i:integer;
begin
AssignFile(f,'D:\1\1.txt');
{$I-}
Rewrite(f);
{$I+}
if IOResult<>0 then // ошибка создания файла
begin
ShowMessage('Ошибка создания файла');
Exit;
end;
0
xJIEXx
1 / 1 / 0
Регистрация: 20.01.2010
Сообщений: 55
26.01.2010, 01:56  [ТС] 7
Если файла нету то создает, если есть то перезаписывает.
Вот полное условие задание: Организовать текстовый файл, состоящий из N строк. Определить среднее количество символов в строке данного файла.
0
Страдалецъ
Тимуровец
444 / 284 / 50
Регистрация: 10.09.2009
Сообщений: 963
26.01.2010, 01:57 8
Ну вы бы хоть попробовали, то что я вам дал ранее прежде чем городить огород.
0
xJIEXx
1 / 1 / 0
Регистрация: 20.01.2010
Сообщений: 55
26.01.2010, 01:59  [ТС] 9
Цитата Сообщение от Страдалецъ Посмотреть сообщение
Ну вы бы хоть попробовали, то что я вам дал ранее прежде чем городить огород.
Извиняюсь, думал что эту строчку нужно было писать после создание файла.
Только не IntToStr а FloatTostr
Delphi
1
2
3
4
5
procedure TForm1.Button1Click(Sender: TObject);
begin
 Memo1.Lines.SaveToFile('D:\1\1.txt');
 Label1.Caption := FloatTostr(Length(Memo1.Text) / Memo1.Lines.Count);
end;
И это только для одной строки, а как сделать для n строк?
0
JUK
19 / 19 / 3
Регистрация: 09.06.2009
Сообщений: 95
26.01.2010, 02:14 10
Вроде так, извини, писал без проверки. Я так понял суть такова: нужно кол символов в файле разделить на кол строк.

Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.Button1Click(Sender: TObject);
var
m,i:integer;
k:real;
begin
m:=1;
for i:=0 to memo1.Lines.Count do
  m:=m+length(memo1.Lines[i]);
k:=m/memo1.Lines.Count;
edit1.Text:=floattostr(k);
end;
0
xJIEXx
1 / 1 / 0
Регистрация: 20.01.2010
Сообщений: 55
26.01.2010, 02:20  [ТС] 11
Цитата Сообщение от JUK Посмотреть сообщение
Вроде так, извини, писал без проверки. Я так понял суть такова: нужно кол символов в файле разделить на кол строк.

Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.Button1Click(Sender: TObject);
var
m,i:integer;
k:real;
begin
m:=1;
for i:=0 to memo1.Lines.Count do
  m:=m+length(memo1.Lines[i]);
k:=m/memo1.Lines.Count;
edit1.Text:=floattostr(k);
end;
Только нужно строки брать не с мемо, а с файла.
0
JUK
19 / 19 / 3
Регистрация: 09.06.2009
Сообщений: 95
26.01.2010, 03:13 12
Так ты загружай файл в мемо. Только предварительно кинь на форму OpenDialog из вкладки Dialog.
Точно так же можно и сохранить: компонент SaveDialog из той же вкладки

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//открыть файл
procedure TForm1.Button2Click(Sender: TObject);
begin
 if OpenDialog1.Execute then
  begin
   memo1.Lines.LoadFromFile(OpenDialog1.FileName);
   end;
end;
 
//сохранить файл
procedure TForm1.Button3Click(Sender: TObject);
begin
if savedialog1.Execute then
 begin
  Memo1.Lines.SaveToFile(savedialog1.FileName);
  end;
end;
0
26.01.2010, 03:13
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2010, 03:13

С помощью типа данных множество определить количество цифр и пробельных символов в строке
Пользователем вводится строка S. С помощью типа данных множество определить: количество цифр и...

Определить частоту символов в строке. Подсчитать кол-во символов повторяемых
Определить частоту символов в строке. Подсчитать кол-во символов повторяемых.

Определить среднее количество символов в строке данного файла.
добрый вечер :) нужна ваша помощь с программкой: Организовать текстовый файл состоящий из N...


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

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

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