| 
| 
 | Вопрос # 5 419/ вопрос решён / | 
 |  Здравствуйте, уважаемые эксперты!Помогите пожалуйста.
 После некоторых изменений в коде программы, проект перестал компилироваться (ошибка could not create output file) и сохраняться.
 С трудом верится что причиной могут стать какие-нибудь вирусы или прочая ерунда о которой пишут в инте. Скорее всего дело в измененном коде
 
 прилагаю к вопросу только кусок кодакоторый исправляла. вообще нужно сохранять статистику игры в текстовый файл причем эта статистика должна быть отсортирована по увеличению времени затраченного на игру
 Приложение:Переключить в обычный режим type  Tplayer = record    name:string[20];    MinTime:integer;    SecTime:integer;    PoSkolko:byte;    Skolko:integer;   end;  player:Tplayer;     stmas:array of tplayer;     stat:TStringlist;  var     i, j: byte;    qw, kolprob: integer;    prom: Tplayer;    Stroka, slovo: string;    stfile:textfile;     stat:=TStringList.Create;     AssignFile(stfile,'statistika.txt');    reset(stfile);    stat.LoadFromFile('statistika.txt');      if FileSize(stfile)<> 0 then    begin {**}        Setlength(stmas,qw+1);             stmas[1]:=player;                  for i:=2 to qw do                   begin            begin          kolprob:=1;          if stroka[j]<>' '  then slovo:=slovo+stroka[j]           else           begin            case kolprob of             1: stmas[j].name:=slovo;             2: stmas[j].MinTime:=strtoint(slovo);             3: stmas[j].SecTime:=strtoint(slovo);            end;            slovo:='';            stmas[j].PoSkolko:=0;            stmas[j].Skolko:=0;            inc(kolprob);           end;          end;        end;       for  j:= 1 to qw  do      for i := 1 to qw  do         begin          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           begin           prom:=stmas[i+1];           stmas[i+1]:=stmas[i];           stmas[i]:=prom;          end;         end;      end{**}    else    begin      qw:=0;      Setlength(stmas,1);            stmas[1]:=player;    end;     for i := 1 to qw+1 do        stat.Strings[i]:=(stmas[i].name+' min='+inttostr(stmas[i].MinTime)+'
sec='+inttostr(stmas[i].SecTime));     stat.savetofile('statistika.txt');    stat.Free;    closefile(stfile);    end;
|  |   Вопрос задала: 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 (статус: Посетитель), 16 июня 2011, 23:53 [#1]:получается весь код что я писала не сохранится, да? не только если не сохранить текстом куда нибудь |  
|   | Gooddy (статус: 3-ий класс), 16 июня 2011, 23:54 [#2]:Текстом сохраните конечно. Чисти код! Чисти код! Чисти код! |  
|   | MerryJane (статус: Посетитель), 16 июня 2011, 23:57 [#3]:Перезапустилась вставила текст опять эта же ошибка |  
|   | Gooddy (статус: 3-ий класс), 16 июня 2011, 23:59 [#4]:Хм. А можно полностью проект? Чисти код! Чисти код! Чисти код! |  
|   | MerryJane (статус: Посетитель), 17 июня 2011, 00:04 [#5]:измененный? |  
|   | MerryJane (статус: Посетитель), 17 июня 2011, 00:07 [#6]:и как мне его вам передать?(= |  
|   | Gooddy (статус: 3-ий класс), 17 июня 2011, 00:16 [#7]:Через аську? Чисти код! Чисти код! Чисти код! |  
|   | corban (статус: 2-ой класс), 17 июня 2011, 03:07 [#8]:AssignFile(stfile,'statistika.txt'); reset(stfile);
 Эти две строки зачем? у тебя ж в TStringList идет загрузка:
 stat.LoadFromFile('statistika.txt');
 А так получается ты файло открываешь для чтения, а потом в него же и пишешь:
 stat.savetofile('statistika.txt');
 |  
|   | bugmenot (статус: 3-ий класс), 17 июня 2011, 10:12 [#9]: Цитата (MerryJane): и как мне его вам передать?(= http://everfall.com/paste/
 (указать Paste as [delphi])
 никаких асечек!
 виконання програми розпочинається з того самого мiсця, де призупинилося.
 
 |  
|   | MerryJane (статус: Посетитель), 17 июня 2011, 13:13 [#10]:Всем спасибо(= но теперь я запорола программу так что до ошибок в статистике даже доходить не успевает(х
 |  17 июня 2011, 13:13: Статус вопроса изменён на решённый (изменил автор вопроса — MerryJane) Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |