Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Прямая загрузка файла в массив

Ответить
Настройки темы
Delphi - [решено] Прямая загрузка файла в массив

Аватара для Tweety_yeah

Новый участник


Сообщения: 43
Благодарности: 0

Профиль | Отправить PM | Цитировать


Есть файл вида:
Код: Выделить весь код
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Его нужно перенести в массив lvl. Как это сделать наиболее быстрым способом?
Код: Выделить весь код
if key=32 then
begin
  AssignFile(lvl, 'levels/level1.lvl');
  Reset(lvl);
  While not Eof(lvl) Do
  Begin
    ReadLn(lvl, s);
    for i := 1 to 20 do
    for k := 1 to 20 do
      begin
        level[k,i] := StrToInt(Copy(s,1,pos(' ',s)-1));
        s := Copy(s,Pos(' ',s)+1,Length(s));
        scan;

      end;
  End;
  CloseFile(lvl);
end;
Пытался сделать так, первое значение записывается и потом выдает ошибку "Is not integer value", как то так.

Отправлено: 07:41, 04-04-2011

 

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Открываем файл, удаляем все пробелы, ибо там одни 0 и 1 и погнали циклом без всяких поисков пробела.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)

Это сообщение посчитали полезным следующие участники:

Отправлено: 07:48, 04-04-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Tweety_yeah

Новый участник


Сообщения: 43
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Delirium:
Открываем файл, удаляем все пробелы, ибо там одни 0 и 1 и погнали циклом без всяких поисков пробела. »
Буду пробовать.

Загрузило, но без переносов на строку вниз, как это сделать?

Последний раз редактировалось Tweety_yeah, 04-04-2011 в 08:06. Причина: Исправил


Отправлено: 07:49, 04-04-2011 | #3


Вредитель


Сообщения: 460
Благодарности: 126

Профиль | Отправить PM | Цитировать


Для варианта без пробелов
Код: Выделить весь код
var
  level : array [1..20, 1..20] of integer;
  lvl : textfile;
  s : string;
  i, k : byte;
begin
  AssignFile(lvl, 'txt.txt');
  Reset(lvl);
  begin
    for i := 1 to 20 do
    begin
      ReadLn(lvl, s);
      for k := 1 to 20 do
        level[k,i] := StrToInt(s[k]);
    end;
  end;
  CloseFile(lvl);
end;

-------
Все сказаное является только моим личным мнением.

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:00, 04-04-2011 | #4


Аватара для Tweety_yeah

Новый участник


Сообщения: 43
Благодарности: 0

Профиль | Отправить PM | Цитировать


Все отлично, спасибо.

Показывает ошибку: I/O error 104, показывая на строку
Код: Выделить весь код
ReadLn(lvl, s);

Отправлено: 10:37, 04-04-2011 | #5


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Tweety_yeah, ну а самому дальше развить идею и подумать? Неужели надо абсолютно все разжевать?

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 13:49, 04-04-2011 | #6


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Эээххх, ну не знаю я Дельфи. Ладно, давай посмотрим, что там происходит...

Код: Выделить весь код
var
  level : array [1..20, 1..20] of integer;  -- массив 20 на 20
  lvl : textfile;                                       -- наш текстовик
  s : string;                                           --строковая переменная, в которой будет текущая строка из файла
  i, k : byte;                                          --переменные  
begin
  AssignFile(lvl, 'txt.txt');                        --закинули наш файл в lvl
  Reset(lvl);                                           --это не знаю чего.
  begin
    for i := 1 to 20 do
    begin
      ReadLn(lvl, s);                                 --Записали строку в S
      for k := 1 to 20 do                           --цикл по  строке S
        level[k,i] := StrToInt(s[k]);            --пишем в массив элемент
    end;
  end;
  CloseFile(lvl);
end;

Таак, погуглил малость. Причина банальна, цитирую:
Цитата:
ты или фаил не создал, или ты его открыл и запускаеш прогу, что вероятней всего!

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)

Это сообщение посчитали полезным следующие участники:

Отправлено: 02:06, 05-04-2011 | #7


Аватара для Tweety_yeah

Новый участник


Сообщения: 43
Благодарности: 0

Профиль | Отправить PM | Цитировать


Проблема найдена, и она совсем не в загрузке файла. Она в моей процедуре прорисовки всего массива.
Всем спасибо, дальше как нибудь сам)

Отправлено: 06:27, 05-04-2011 | #8


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


ну вот и чудненко

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 09:31, 05-04-2011 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Прямая загрузка файла в массив

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Загрузка файла из интернета посредством команд CMD volk1234 Скриптовые языки администрирования Windows 42 30-03-2014 12:16
Загрузка ЦП до 100% при скачивании файла. b_dimonoff Хочу все знать 2 25-01-2011 13:43
Прочее - Прямая локальная сеть soon-end Сетевые технологии 3 23-05-2010 17:01
Прямая трансляция конференции ReMIX10! OSZone News Новости и события Microsoft 0 21-05-2010 10:30
Из файла в массив Georgiy Вебмастеру 6 28-10-2004 23:10




 
Переход