Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 661

Не работает процедура:то пишет,что много байт,то ещё что-то

15.09.2015, 22:37. Показов 869. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вод код процедуры,задачи которой:1)проверить,есть ли у создаваемого файла расширение,если нет то предложить его добавить;2) Записать название файла в другой файл для хранения информации о созданных файлах;3) создать файл с тем названием,с которым пожелает пользователь,если же есть файл с таким именем,то спросить,перезаписывать ли его,из которых не работает пункт 2,т.к после его создания программа развалилась:

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
procedure Form1.button1_Click(sender: Object; e: EventArgs);
var D:boolean;
Checker,Sw,Sw2:string;
Monitoring:textfile;
label 2;
begin
try
Name:=TextBox1.Text;
Checker:=ExtractFileExt(Name);
//Monitoring
reset(Monitoring,'info.txt');
2: if eof(Monitoring) = False
then 
begin
read(Monitoring,Sw);
Sw2:=Sw2+Sw;
goto 2;
end;
 
closefile(Monitoring);
 
rewrite(Monitoring,'info.txt');
 
Sw2:=Sw2+Name+(',');
 
writeln(Monitoring,Sw2);
 
//
 
//Extention
checker:=ExtractFileExt(Name);
if checker<>('.txt') then begin
DialogResult:=MessageBox.Show('Файл не имеет расширения,сменить его на ".txt"?','Warning',MessageBoxButtons.YESNO,MessageBoxIcon.Warning);
if DialogResult=System.Windows.Forms.DialogResult.Yes then begin if Name=('info') then MessageBox.Show('Недопустимо для этого файла!','Error',MessageBoxButtons.OK,MessageBoxIcon.Error); 
if Name<>('info') then begin Name:=Name+('.txt'); TextBox1.Text:=Name; end;
end;
end;
//
 
//Проверка наличия файла
if FileExists(Name) = true then
begin
 
 
DialogResult := MessageBox.Show('Вы точно хотите перезаписать файл?','Warning',MessageBoxButtons.YESNO,MessageBoxIcon.Question); 
if DialogResult = System.Windows.Forms.DialogResult.Yes then begin assign(FileText,Name); rewrite(FileText); MessageBox.Show('Файл перезаписан,можно делать запись','Warning',MessageBoxButtons.OK,MessageBoxIcon.Warning); 
MessageBox.Show('Can write','Warning!',MessageBoxButtons.OK,MessageBoxIcon.Warning); end;
end;
//
if FileExists(Name) = False then
begin
assign(FileText,Name);
 
rewrite(FileText);
MessageBox.Show('Can write','Warning!',MessageBoxButtons.OK,MessageBoxIcon.Warning);
end;
 
//Extention
 
 
 
//
 
except MessageBox.Show('Error!','Error!',MessageBoxButtons.OK,MessageBoxIcon.Error);
 
end;
end;

Кстати,вопрос,у меня есть компилятор Dev c++. Там,как я понял,нельзя создавать форму на Си. Какие посоветуете компиляторы для Си,кроме VS?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.09.2015, 22:37
Ответы с готовыми решениями:

Не работает ограничение CHECK и кое-что ещё
Добрый вечер. Создаю таблицу запросом: CREATE TABLE IF NOT EXISTS tb (id INT UNSIGNED, column0 VARCHAR(20), column1 INT DEFAULT 25...

Не работает панель задач, и вообще, много что не работает
Здравствуйте! С недавнего времени меню Пуск и панель задач перестали нажиматься мышью. В моем компьютере не открываются диски. Только...

Нужно ли ещё что то инклюдить, что бы заработал этот код?
&lt;HTML&gt; &lt;HEAD&gt; &lt;TITLE&gt;&lt;/TITLE&gt; &lt;/HEAD&gt; &lt;BODY&gt; &lt;? if (!@$doGo){?&gt; &lt;form action='&lt;?=$SCRIPT_NAME?&gt;'&gt; Введите имя:&lt;input...

4
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
16.09.2015, 10:04
NewNoob, давай весь проект прикладывай. переменные не все описаны,
Цитата Сообщение от NewNoob Посмотреть сообщение
т.к после его создания программа развалилась
файлы только открываются (их еще и закрывать надо)

п.1. мне не правится это:
Цитата Сообщение от NewNoob Посмотреть сообщение
2: if eof(Monitoring) = False
then
begin
read(Monitoring,Sw);
Sw2:=Sw2+Sw;
goto 2;
end;
почему read, а не readln ?
вообще это пишется так:
Pascal
1
2
3
4
while not eof (Monitoring) do begin
  readln(Monitoring,Sw);
  Sw2:=Sw2+Sw;
end;
или так:
Pascal
1
SW2:=System.IO.File.ReadAllText('info.txt',Encoding.Default);
Добавлено через 12 минут
Name в Name1 переименуй

Добавлено через 21 минуту
так нужно было?
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
procedure Form1.button1_Click(sender: Object; e: EventArgs);
var 
  D:boolean;
  Checker,Sw,Sw2,Name1:string;
   FileText:textfile;
 
begin
try
  Name1:=TextBox1.Text;
  Checker:=ExtractFileExt(Name1);
//Monitoring
  SW2:=System.IO.File.ReadAllText('info.txt',Encoding.Default);
  Sw2:=Sw2+Name1+(',');//а если textBox1 пустой????
  System.IO.File.WriteAllText('info.txt',Sw2);
//  checker:=ExtractFileExt(Name1);  //зачем еще раз????
 
   if UpperCase(Checker)<>('.TXT') then begin
     if MessageBox.Show('Файл не имеет расширения ".txt",сменить его на ".txt"?','Warning',
        MessageBoxButtons.YESNO,MessageBoxIcon.Warning)=System.Windows.Forms.DialogResult.Yes 
        then 
            begin 
               Name1:=Name1+('.txt'); 
               TextBox1.Text:=Name1; 
             end;
      end;
//
   if uppercase(Name1)='INFO.TXT' then begin
       MessageBox.Show('Недопустимо для этого файла!','Error',MessageBoxButtons.OK,MessageBoxIcon.Error);
        exit;
     end;  
 
  if FileExists(Name1) then 
     if MessageBox.Show('Вы точно хотите перезаписать файл?','Warning',
        MessageBoxButtons.YESNO,MessageBoxIcon.Question)=System.Windows.Forms.DialogResult.Yes 
        then begin 
           assign(FileText,Name1); 
           rewrite(FileText); 
           MessageBox.Show('Файл перезаписан,можно делать запись','Warning',MessageBoxButtons.OK,MessageBoxIcon.Warning);
        end else begin   
            MessageBox.Show('Can write','Warning!',MessageBoxButtons.OK,MessageBoxIcon.Warning); 
            exit;
         end;
//
if not FileExists(Name1) then begin
  assign(FileText,Name1);
  rewrite(FileText);
  MessageBox.Show('File created','Warning!',MessageBoxButtons.OK,MessageBoxIcon.Warning);
end;
//
  CloseFile(FileText);
//
except MessageBox.Show('Error!','Error!',MessageBoxButtons.OK,MessageBoxIcon.Error);
end;
end;
Добавлено через 15 минут
Кстати,вопрос,у меня есть компилятор Dev c++. Там,как я понял,нельзя создавать форму на Си. Какие посоветуете компиляторы для Си,кроме VS?
- никакие. С формами работает среда программирования, а компилятор переводит писанину в исполняемый код.
0
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 661
16.09.2015, 15:01  [ТС]
Цитата Сообщение от Joy Посмотреть сообщение
Код PascalВыделить код
1
2
3
4
while not eof (Monitoring) do begin
* readln(Monitoring,Sw);
* Sw2:=Sw2+Sw;
end
Да дело в том,что этот цикл у меня неадекватно работает: зависает программа от него.
0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
16.09.2015, 19:53
у меня не зависает. если строку читаешь, зачем пишешь read? должно быть readln

Добавлено через 15 минут

Не по теме:

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

0
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 661
20.09.2015, 11:25  [ТС]
Joy, хорошо,на будущее учту. Что касается этой проблемы,я её решил.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.09.2015, 11:25
Помогаю со студенческими работами здесь

Что лучше: динамические массивы, векторы, списки, map контейнеры или что-то ещё?
Привет всем! Помогите правильно алгоритм выбрать. Надо получать из файлов (около 8000 файлов) значения и записать их в массивы или в...

Что нужно программисту для успеха: высокое IQ, знания математики, лингвистики? Что-то ещё?
Современная система образования в любой точке мира не ставит основной целью &quot;обучить спеца&quot;. Спецы, скорее, побочный продукт. ...

Что выбрать, listview / datafridview / ещё что-то такое?
Имеется ТЗ: вывести в форму 3-х столбцовую таблицу, обладающую следующими свойствами: 1. первый столбец - список имён файлов (каждый...

Подскажите что лучше:Denwer или что-то ещё?
Не знаю что лучше?

Не работает триггер и пишет что произошел конфликт, почему?
Create trigger trigger3 On dbo.tovar After update As Begin Set nocount on; If (select Kod_skla from inserted) &lt;&gt; (select...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru