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

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

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

Delphi.int.ru Expert

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

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

#   

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


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

Подробнее »



Вопрос # 4 141

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!
У меня такой вопрос к вам!
У меня есть код, для открытия файла в StringGrid:
Но, мне надо дописать его для стобца j! Я пробовала, но он открывает все числа в i-ом стобце!Помогите пожалуйста!

Приложение:
  1. procedure TForm1.N2Click(Sender: TObject);
  2. var
  3. i: integer;
  4.  
  5.  
  6. begin
  7. If OpenDialog1.Execute then
  8. begin
  9. fname:=OpenDialog1.FileName;
  10.  
  11.  
  12. i:=0;
  13. While not Eof(InFile) do
  14. Begin
  15. Readln(InFile,InString);
  16. a[i]:= StrToInt(InString);
  17. stringGrid1.Cells[0,i]:=IntToStr(a[i]);
  18. i:=i+1;
  19. end;


Alinka27 Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задала: Alinka27 (статус: Посетитель)
Вопрос отправлен: 11 мая 2010, 20:17
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: min@y™

Написал я тебе пример - загрузка текстового файла в TStringGrid, разделители - пробелы, количество строк и столбцов - любое. Учись, студентка. Прога в прицепе.
Впредь учись правильно формулировать вопросы и не заниматься тупым копипастингом чужого кода в свои проекты.
К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 11 мая 2010, 22:07
Оценка за ответ: 5

Комментарий к оценке: Спасибо вам огромное!!!

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

Всего сообщений: 21; последнее сообщение — 13 мая 2010, 19:20; участников в обсуждении: 2.

Страницы: [1] [2] [Следующая »]

min@y™

min@y™ (статус: Доктор наук), 11 мая 2010, 20:34 [#1]:

Индусский код детектед!
a[i]:= StrToInt(InString);
stringGrid1.Cells[0,i]:=IntToStr(a[i]);
Ненавижу вопросы, где автор пишет то, чего не понимает, но зато просит найти в ЭТОМ ошибку.
Вопрос номер РАЗ: что есть за массив "a"?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Alinka27

Alinka27 (статус: Посетитель), 11 мая 2010, 20:36 [#2]:

Ну не зря же я вам пишу, значит не понимаю!Прошу у вас о помощи!Понимала бы, написала!
min@y™

min@y™ (статус: Доктор наук), 11 мая 2010, 20:44 [#3]:

Цитата (Alinka27):

Ну не зря же я вам пишу, значит не понимаю!Прошу у вас о помощи!Понимала бы, написала!


Я опытный программист с большим стажем. Но мне КАЖДЫЙ РАЗ приходится вбивать в мозги задающих вопросы: ПРАВИЛЬНО ФОРМУЛИРУЙ ВОПРОС, иначе будет опубликовано немеряно флуда и уйдёт ОЧЕНЬ много времени на решение вопроса.

А вопрос твой надо было ставить так: "Как загрузить в TStringGrid (столбцов X, строк Y) вот этот текстовый файл (ссылка на файл)".
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Alinka27

Alinka27 (статус: Посетитель), 11 мая 2010, 20:48 [#4]:

Я в вашем сайте первый день, извините, что не правильно сформулировала свой вопрос! Я не опытный программист! Только учусь, мне это надо для курсовой!
min@y™

min@y™ (статус: Доктор наук), 11 мая 2010, 20:54 [#5]:

Цитата (Alinka27):

Я в вашем сайте первый день, извините, что не правильно сформулировала свой вопрос! Я не опытный программист! Только учусь, мне это надо для курсовой!

А ты знаешь ещё какие-нибудь знаки препинания, оканчивающие предложения, кроме "!"?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Alinka27

Alinka27 (статус: Посетитель), 11 мая 2010, 21:05 [#6]:

Хоть вы и ОПЫТНЫЙ программист, вы не имеете ни какого права так мне писать, не хотите отвечать, удалите мой вопрос, я только студентка, до вас мне расти и расти.Спорить я с вами не хочу...Спасибо за такой развернутый ответ.
min@y™

min@y™ (статус: Доктор наук), 11 мая 2010, 21:11 [#7]:

Цитата (Alinka27):

Хоть вы и ОПЫТНЫЙ программист, вы не имеете ни какого права так мне писать

Это почему же?

Цитата (Alinka27):

не хотите отвечать, удалите мой вопрос

У меня нет таких полномочий.

Цитата (Alinka27):

Спорить я с вами не хочу...Спасибо за такой развернутый ответ.

А я ответа и не давал, т.к. нет чётко сформулированного вопроса. Телепатов на этом сайте, как, впрочем, и на других, нету. Задай правльно вопрос - сразу получишь правильный ответ.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Alinka27

Alinka27 (статус: Посетитель), 11 мая 2010, 21:21 [#8]:

Вопрос такой:Как загрузить в TStringGrid (столбцов 2, строк 7) вот этот текстовый файл http://files.mail.ru/PSXO0K
min@y™

min@y™ (статус: Доктор наук), 11 мая 2010, 21:30 [#9]:

А что делать, если количество строк и/или столбцов в этом файле не будет соответствовать размерам StringGrid?
Этот файл постоянный или меняется?
Разделители в файле только пробелы?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 11 мая 2010, 22:08 [#10]:

Заметь: кроме меня в этот вопрос никто не полез.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Alinka27

Alinka27 (статус: Посетитель), 12 мая 2010, 10:10 [#11]:

Этот файл меняется, разделители только пробелы, строк может быть от 1 до 15, а стобцов только 2.
min@y™

min@y™ (статус: Доктор наук), 12 мая 2010, 10:20 [#12]:

Цитата (Alinka27):

Этот файл меняется, разделители только пробелы, строк может быть от 1 до 15, а стобцов только 2.

Ну вот и погоняй мой пример по разным файлам. Я его особо не отлаживал, но работать, вроде, должно.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Alinka27

Alinka27 (статус: Посетитель), 12 мая 2010, 10:29 [#13]:

Да, он работает.
Alinka27

Alinka27 (статус: Посетитель), 13 мая 2010, 16:06 [#14]:

Здраствуйте!!! несколько дней тому назад вы мне дали код для загрузки текстового файла в StringGrid: http:https://www.delphi-int.ru/code/6ffe9b59. Всё нормально работает, но он не открывает нулевую строку.Я пробовала изменить ограничения, но результат такой же. Не подскажите где ошибка?
min@y™

min@y™ (статус: Доктор наук), 13 мая 2010, 17:35 [#15]:

Цитата (Alinka27):

но он не открывает нулевую строку

А что такое "нулева строка"?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Alinka27

Alinka27 (статус: Посетитель), 13 мая 2010, 18:05 [#16]:

StringGrid мой выглядит так http://files.mail.ru/4U1UP0?t=1, а мне надо открыть текстовый файл такого вида:http://files.mail.ru/PSXO0K
Если пользоваться вашим кодом, то первая строка текстового файла откроется вместо Хфактор и Урезульт
min@y™

min@y™ (статус: Доктор наук), 13 мая 2010, 18:49 [#17]:

Конечно. Этого в задании не было, я и сделал, как понял.
Напоминает анекдот.
Поймал мужик золотую рыбку. Загадал желание: "хочу член до земли". Рыбка отрубила ему ноги.
Мораль: правильно формулируй задание.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 13 мая 2010, 18:56 [#18]:

Никогда не правь чужой код, если не понимаешь, как он работает и что он делает.
procedure TMainForm.LoadGridFromFile(const FileName: string;
  AGrid: TStringGrid);
var
  Text, Words: TStringList;
  ARow: Integer;
begin
  // Загрузка текстового файла в TStringGrid.
  // Разделители - пробелы.
  // Пустые строки игнорируются
  Text:= TStringList.Create();
  Words:= TStringList.Create();
  try
    // Загрузка в память списка
    try
      Text.LoadFromFile(FileName);
 
      // Удаление пустых строк из списка
      for ARow:= Text.Count - 1 downto 0 do
        if Trim(Text[ARow]) = ''
          then Text.Delete(ARow);
    except
      Text.Clear();
      Application.MessageBox(PChar('Не могу загрузить файл "' + FileName + '".'),
                             PChar('Ошибка'),
                             MB_OK + MB_ICONERROR);
    end;
 
    if Text.Count = 0
      then Exit;
 
    // Формирование таблицы
    AGrid.RowCount:= Text.Count + 1; // Кол-во строк
    //AGrid.ColCount:= 1; // По умолчанию
 
    // Разбиение на столбцы
    for ARow:= 0 to Text.Count - 1 do
      begin
        SeparateWords(Text[ARow], Words);
 
        // Установка кол-ва столбцов по количеству найденных слов в текущей строке
        if Words.Count > AGrid.ColCount
          then AGrid.ColCount:= Words.Count;
 
        // Распределение слов строки файла по ячейкам строки таблицы
        AGrid.Rows[ARow + 1].Assign(Words);
      end;
  finally
    Text.Free();
    Words.Free();
  end;
end;
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Alinka27

Alinka27 (статус: Посетитель), 13 мая 2010, 19:04 [#19]:

Спасибо, огромное! Всё работает, вы меня спасли.
P.S. Буду учится формулировать вопросы=)
min@y™

min@y™ (статус: Доктор наук), 13 мая 2010, 19:16 [#20]:

Цитата (Alinka27):

вы меня спасли

Где моё пиво?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Страницы: [1] [2] [Следующая »]

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

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