Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2019, 12:36   #11
Rilpack
Пользователь
 
Регистрация: 14.05.2019
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
да.
в этом коде я ошибок не увидел.
Работает?
Нет, не работает. Ссылается на ошибку в этой строке
Код:
read(f,k);
Которая находится в
Код:
if OpenDialog1.Execute then
  begin
    try
      try
        assignfile(f,OpenDialog1.Filename);
        reset(f);
        readln(f,n);
        for kol:=1 to n do
          for row:=1 to n do
                read(f,k);
Rilpack вне форума Ответить с цитированием
Старый 20.05.2019, 13:15   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Rilpack Посмотреть сообщение
Нет, не работает. Ссылается на ошибку в этой строке
какую именно ошибку?
при запуске проекта из IDE или при запуске EXE-шника?

запакуйте ваш txt файл в архив (zip/rar/7z) и приложите к сообщению на форум
(см. Загрузить файлы - Управление вложениями )
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.05.2019, 13:28   #13
Rilpack
Пользователь
 
Регистрация: 14.05.2019
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
какую именно ошибку?
при запуске проекта из IDE или при запуске EXE-шника?

запакуйте ваш txt файл в архив (zip/rar/7z) и приложите к сообщению на форум
(см. Загрузить файлы - Управление вложениями )
Всё хорошо, это я там намудрил. Прости и спасибо вам огромное. Только когда в exe-шнике после выхода сообщения, что файл не корректен, всё равно добавляется на таблицу некоторые числа. Это можно как-то исправить?
Rilpack вне форума Ответить с цитированием
Старый 20.05.2019, 13:45   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Rilpack Посмотреть сообщение
Это можно как-то исправить?
всё можно исправить.


Цитата:
Сообщение от Rilpack Посмотреть сообщение
олько когда в exe-шнике после выхода сообщения, что файл не корректен, всё равно добавляется на таблицу некоторые числа.
Покажите Ваш код и скриншот ошибки.


Цитата:
Сообщение от Rilpack Посмотреть сообщение
Прости и спасибо вам огромное.
Не за что!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.05.2019, 13:46   #15
Rilpack
Пользователь
 
Регистрация: 14.05.2019
Сообщений: 25
По умолчанию

Цитата:
Serge_Bliznykov
Последний вопрос. Как вывести свободные члены? И можно ли сделать ещё сообщение, если при нажатии из загрузки файлов был старый файл, который запускали до этого, но он уже удален, т.е. пользователь загружает файл, который был удален. Я попробовал так сделать, у меня вышло сначала, что файл не корректен, а потом программа вообще сломалась.
Rilpack вне форума Ответить с цитированием
Старый 20.05.2019, 13:50   #16
Rilpack
Пользователь
 
Регистрация: 14.05.2019
Сообщений: 25
По умолчанию

К примеру в файле находится такая матрица:
Код:
5
1 0 0 0 0 
0 1 0 0 0
0 1 йцу 0 0
23213ца
При загрузки, выходит сообщение, что файл не корректен и в таблице появляются кое-какие числа из этого файла.

Ещё раз кину код загрузки:
Код:
{---Кнопка "Загрузка"---}
procedure TForm1.N4Click(Sender: TObject);
var f:textfile;
    k,n,kol,row:integer;
begin
if OpenDialog1.Execute then
  begin
    try
      try
        assignfile(f,OpenDialog1.Filename);
        reset(f);
        readln(f,n);
        for kol:=1 to n do
          for row:=1 to n do
    {----------}
    StringGrid1.ColCount:=n+2;
    StringGrid1.RowCount:=n+1;
    row:=0;
    for kol:=1 to n do
    begin
      StringGrid1.Cells[kol,row]:='K(x'+IntToStr(kol)+')';
    end;
    StringGrid1.Cells[n+1,0]:='Св.члены';
    kol:=0;
    for row:=1 to n do
      StringGrid1.Cells[kol,row]:=IntToStr(row);
      begin
        StringGrid2.ColCount:=2;
        StringGrid2.RowCount:=n;
        for row:=0 to n do
        begin
          StringGrid2.Cells[kol,row]:='X'+IntToStr(row+1);
        end;
      end;
      StringGrid1.Options:=StringGrid1.Options+[goEditing];
    {----------}
    reset(f);
        readln(f,n);
            for kol:=1 to n do
      for row:=1 to n do
      begin
        read(f,k);
        StringGrid1.Cells[kol,row]:=IntToStr(k);
      end;
    except
         Application.MessageBox('Файл не корректен', 'Ошибка', MB_OK or MB_ICONERROR);
         Exit;   
    end;
    finally
    closefile(f);
    end;
end;
end;
И файл самой матрицы:
Вложения
Тип файла: txt Матрица.txt (68 байт, 119 просмотров)
Rilpack вне форума Ответить с цитированием
Старый 20.05.2019, 13:54   #17
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Rilpack Посмотреть сообщение
Как вывести свободные члены?
Вывести откуда и куда? Поясните.

Цитата:
Сообщение от Rilpack Посмотреть сообщение
если при нажатии из загрузки файлов был старый файл
И тут я не понял.
У Вас же OpenDialog1.Execute.
Если я не ошибаюсь, то там нельзя выбрать файл, которого уже нет.
Или Вы что имеете в виду?

ну, можете проверять файл перед тем, как открыть его: if FileExists(ПутьКФайлу) then
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.05.2019, 13:56   #18
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Rilpack Посмотреть сообщение
Код:
readln(f,n);
        for kol:=1 to n do
          for row:=1 to n do
    {----------}
    StringGrid1.ColCount:=n+2;
мы по кругу ходим

Код:
readln(f,n);
        for kol:=1 to n do
          for row:=1 to n do
             Read(f, k);
    {----------}
    StringGrid1.ColCount:=n+2;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.05.2019, 13:58   #19
Rilpack
Пользователь
 
Регистрация: 14.05.2019
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Вывести откуда и куда? Поясните.
Из файла в таблицу
Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
И тут я не понял.
У Вас же OpenDialog1.Execute.
На фото
Изображения
Тип файла: jpg 23123123312.jpg (60.2 Кб, 152 просмотров)
Rilpack вне форума Ответить с цитированием
Старый 20.05.2019, 14:03   #20
Rilpack
Пользователь
 
Регистрация: 14.05.2019
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
мы по кругу ходим

Код:
readln(f,n);
        for kol:=1 to n do
          for row:=1 to n do
             Read(f, k);
    {----------}
    StringGrid1.ColCount:=n+2;
Всё, я понял. Спасибо. Исправил.
Rilpack вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема со StringGrid (Delphi) Rilpack Помощь студентам 2 14.05.2019 16:44
Проблема с загрузкой файла plg Timurkh77 Gamedev - cоздание игр: Unity, OpenGL, DirectX 23 17.01.2019 19:39
C# Тестирование Блокнота. Проблема с загрузкой из файла .csv StudentTestC# Помощь студентам 3 05.03.2015 12:30
Проблема с загрузкой параметров из ini-файла Nomad Помощь студентам 6 03.08.2009 16:04