Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 419

/ вопрос решён /

Здравствуйте, уважаемые эксперты!
Помогите пожалуйста.
После некоторых изменений в коде программы, проект перестал компилироваться (ошибка could not create output file) и сохраняться.
С трудом верится что причиной могут стать какие-нибудь вирусы или прочая ерунда о которой пишут в инте. Скорее всего дело в измененном коде

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

Приложение:
  1. type
  2. Tplayer = record
  3. name:string[20];
  4. MinTime:integer;
  5. SecTime:integer;
  6. PoSkolko:byte;
  7. Skolko:integer;
  8. end;
  9.  
  10.  
  11. player:Tplayer;
  12. stmas:array of tplayer;
  13. stat:TStringlist;
  14.  
  15.  
  16. var
  17. i, j: byte;
  18. qw, kolprob: integer;
  19. prom: Tplayer;
  20. Stroka, slovo: string;
  21. stfile:textfile;
  22.  
  23. stat:=TStringList.Create;
  24.  
  25. AssignFile(stfile,'statistika.txt');
  26. reset(stfile);
  27. stat.LoadFromFile('statistika.txt');
  28.  
  29.  
  30. if FileSize(stfile)<> 0 then
  31. begin {**}
  32.  
  33. Setlength(stmas,qw+1);
  34. stmas[1]:=player;
  35. for i:=2 to qw do
  36. begin
  37.  
  38.  
  39. begin
  40. kolprob:=1;
  41. if stroka[j]<>' ' then slovo:=slovo+stroka[j]
  42. else
  43. begin
  44. case kolprob of
  45. 1: stmas[j].name:=slovo;
  46. 2: stmas[j].MinTime:=strtoint(slovo);
  47. 3: stmas[j].SecTime:=strtoint(slovo);
  48. end;
  49. slovo:='';
  50. stmas[j].PoSkolko:=0;
  51. stmas[j].Skolko:=0;
  52. inc(kolprob);
  53. end;
  54. end;
  55. end;
  56.  
  57. for j:= 1 to qw do
  58. for i := 1 to qw do
  59. begin
  60. if (stmas[i].MinTime>stmas[i+1].MinTime) or ((stmas[i].MinTime=stmas[i+1].MinTime) and (stmas[i].SecTime>stmas[i+1].SecTime)) then
  61. begin
  62. prom:=stmas[i+1];
  63. stmas[i+1]:=stmas[i];
  64. stmas[i]:=prom;
  65. end;
  66. end;
  67. end{**}
  68. else
  69. begin
  70. qw:=0;
  71. Setlength(stmas,1);
  72. stmas[1]:=player;
  73. end;
  74.  
  75. for i := 1 to qw+1 do
  76. stat.Strings[i]:=(stmas[i].name+' min='+inttostr(stmas[i].MinTime)+' sec='+inttostr(stmas[i].SecTime));
  77.  
  78. stat.savetofile('statistika.txt');
  79. stat.Free;
  80. closefile(stfile);
  81. end;


MerryJane Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задала: MerryJane (статус: Посетитель)
Вопрос отправлен: 16 июня 2011, 23:33
Состояние вопроса: решён, ответов: 2.

Ответ #1. Отвечает эксперт: Gooddy

Здравствуйте, MerryJane!
Дело не в коде, а в том, что программа которую вы пытаетесь скомпилировать уже запущена (часто возникала подобная проблема, когда работал без отладчика).
Поищите в списке процессов запущенное приложение и закройте, если не сработает перезапуститесь.

Ответ отправил: Gooddy (статус: 3-ий класс)
Время отправки: 16 июня 2011, 23:50
Оценка за ответ: 5

Комментарий к оценке: огромную помощь оказал(=

Ответ #2. Отвечает эксперт: corban

Здравствуйте, MerryJane!
AssignFile(stfile,'statistika.txt');
reset(stfile);
Эти две строки зачем? у тебя ж в TStringList идет загрузка:
stat.LoadFromFile('statistika.txt');
А так получается ты файло открываешь для чтения, а потом в него же и пишешь:
stat.savetofile('statistika.txt');
вот тебе и ошибка "could not create output file". Черным по белому же написано "не могу окрыть файл для вывода"

Ответ отправил: corban (статус: 2-ой класс)
Время отправки: 17 июня 2011, 03:10


Мини-форум вопроса

Всего сообщений: 10; последнее сообщение — 17 июня 2011, 13:13; участников в обсуждении: 4.
MerryJane

MerryJane (статус: Посетитель), 16 июня 2011, 23:53 [#1]:

получается весь код что я писала не сохранится, да? не только если не сохранить текстом куда нибудь
Gooddy

Gooddy (статус: 3-ий класс), 16 июня 2011, 23:54 [#2]:

Текстом сохраните конечно.
Чисти код! Чисти код! Чисти код!
MerryJane

MerryJane (статус: Посетитель), 16 июня 2011, 23:57 [#3]:

Перезапустилась вставила текст опять эта же ошибка
Gooddy

Gooddy (статус: 3-ий класс), 16 июня 2011, 23:59 [#4]:

Хм. А можно полностью проект?
Чисти код! Чисти код! Чисти код!
MerryJane

MerryJane (статус: Посетитель), 17 июня 2011, 00:04 [#5]:

измененный?
MerryJane

MerryJane (статус: Посетитель), 17 июня 2011, 00:07 [#6]:

и как мне его вам передать?(=
Gooddy

Gooddy (статус: 3-ий класс), 17 июня 2011, 00:16 [#7]:

Через аську?
Чисти код! Чисти код! Чисти код!
corban

corban (статус: 2-ой класс), 17 июня 2011, 03:07 [#8]:

AssignFile(stfile,'statistika.txt');
reset(stfile);
Эти две строки зачем? у тебя ж в TStringList идет загрузка:
stat.LoadFromFile('statistika.txt');
А так получается ты файло открываешь для чтения, а потом в него же и пишешь:
stat.savetofile('statistika.txt');
bugmenot

bugmenot (статус: 3-ий класс), 17 июня 2011, 10:12 [#9]:

Цитата (MerryJane):

и как мне его вам передать?(=

http://everfall.com/paste/
(указать Paste as [delphi])
никаких асечек!
виконання програми розпочинається з того самого мiсця, де призупинилося.

MerryJane

MerryJane (статус: Посетитель), 17 июня 2011, 13:13 [#10]:

Всем спасибо(=
но теперь я запорола программу так что до ошибок в статистике даже доходить не успевает(х

17 июня 2011, 13:13: Статус вопроса изменён на решённый (изменил автор вопроса — MerryJane)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:59
Выполнено за 0.03 сек.