Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прочитать файл в TMemo, Как можно? 
V
    Опции темы
Serkys
Дата 3.4.2006, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: нет
Всего: 22



Предупреждаю сразу: в Delphi я ламер полный.
Попытался немного, вроде нормально пошло, но не получается прочитать в TMemo из файла текст.
Пытался так, выскакивает ошибка.
Код

Form1.Memo1.Lines.LoadFromFile('base.mdb');

Выручайте.
Добавлено @ 19:37
Файл содержит текст в несколько строк. Пробовал оставить только одну строку - не помогает.
PM MAIL   Вверх
Guedda
Дата 3.4.2006, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Какая ошибка выскакивает? На кофейной гуще гадать никто не может.


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Serkys
Дата 3.4.2006, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: нет
Всего: 22



Выскакивает сообщение с текстом: "Project Project1.exe raised exception class EAccessViolation With message 'Access violation at address 00451DB8 in module 'Project1.exe'. Read of address 00000308'. Process stopped. Use Step or Run to continue." И на выбор OK или Help.
Help ничего хорошего не пишет (пишет по английски и заумными терминами). Жму ОК, при попытке перейти к пошаговому выполнению (Step Over) или запустить (Run) выскакивает ошибка "Runtime error 216 at 004035B6".
Гадость какая-то. Я правильно понимаю, что дело не в коде?
PM MAIL   Вверх
Poseidon
Дата 3.4.2006, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Дело в коде в любом случае. Но вот то, что дело не в той строке, что ты привел - 99%. Посмотри на какой строке вылетает ошибка и все станет ясно.


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Демо
Дата 3.4.2006, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Serkys,

Базу MS Access пытаешься загрузить? - Зря.
Memo для отображения текстовых данных.


--------------------
    
PM MAIL ICQ Skype   Вверх
Serkys
Дата 3.4.2006, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: нет
Всего: 22



Цитата(Демо @ 3.4.2006, 21:27 Найти цитируемый пост)
Базу MS Access пытаешься загрузить? - Зря.

Не, не пытаюсь. Расширение сам придумал (типа себя крутым программером чувствую smile ). Надо попробовать расширение сменить.
Цитата(Poseidon @ 3.4.2006, 21:20 Найти цитируемый пост)
Но вот то, что дело не в той строке, что ты привел - 99%. Посмотри на какой строке вылетает ошибка и все станет ясно.

На этой и вылетает.
Добавлено @ 20:47
Не, смена расширения на txt не помогла. Вот вся процедура:
Код

procedure demo_load;
begin
  if (fileexists('base.mdb')) then
  begin
    Form1.Memo1.Lines.LoadFromFile('base.mdb');
  end;
end;

Вот что заметил: если файл он не находит, то всё нормально и выводит то, что забито в lines (очищать lines тоже пробовал, не помогает). А если файл нашёл, то ошибка.

Содержимое файла base.mdb случайно набранный текст в английской раскладке без каких-либо спецсимволов.

Ошибка вылетает во время прохода "Application.Initialize". Что-то я вообще ничего не понимаю.

Делфи седьмой стоит.

Для особо интересующихся выкладываю весь код. По себе знаю, что мутное это дело - в чужом коде разбираться. Если у кого желание будет - посмотрите.
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Button2: TButton;
    Label1: TLabel;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  edit1.Visible:=true;
  button2.Visible:=true;
end;

procedure TForm1.Button2Click(Sender: TObject);
var t: textfile;
begin
  assignfile(t,'base.mdb');
  if (fileexists('base.mdb')) then
    append(t)
  else rewrite(t);
  writeln(t,edit1.Text);
  closefile(t);
  edit1.Text:='';
  edit1.Visible:=false;
  button2.Visible:=false;
end;

procedure demo_load;

begin
  if (fileexists('base.mdb')) then
  begin
    Form1.Memo1.Lines.LoadFromFile('base.mdb');
  end;
end;

begin
demo_load;
end.

PM MAIL   Вверх
Poseidon
Дата 3.4.2006, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(Serkys @ 3.4.2006, 19:37 Найти цитируемый пост)
begin
demo_load;
end.
Кто тебя этому научил? smile Сделай так
Код

procedure TForm1.FormCreate(Sender: TObject);
begin
demo_load;
end;
и будет счастье smile



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Pakshin A. S.
Дата 3.4.2006, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Цитата(Poseidon @ 3.4.2006, 21:08 Найти цитируемый пост)
Кто тебя этому научил?

Есть такое в мире... Называют инициализацией... Говорят, что гуд, но скорее для переменных модуля, поэтому скорее всего тут тот же случай: человек инициализирует текст в компоненте, поэтому и прибегает именно к такой конструкции... smile Прав?
PM   Вверх
Quadr0
Дата 3.4.2006, 22:04 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...

Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 11:00
  Вверх
Serkys
Дата 3.4.2006, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: нет
Всего: 22



Цитата(Poseidon @ 3.4.2006, 22:08 Найти цитируемый пост)
Кто тебя этому научил?

Я сам кого хочешь научу smile . Да я просто на паскале кодил, тут подумал, что будет также почти - сначала процедуры/функции и т.д., затем сам код.

Poseidon, спасибо огромное!!! С меня плюс. Всем остальным тоже спасибо.

Да... Делфи это не паскаль...
PM MAIL   Вверх
Pakshin A. S.
Дата 3.4.2006, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Кстати еще один вариант имеется (меньше кода получится)...

Открываем dpr от нашего проекта... там есть Application.CreateForm(TForm1, Form1); вот после этой строчки поставим Form1.Memo1.Lines.LoadFromFile('');

Итого, мы избавились от события... smile
PM   Вверх
Serkys
Дата 3.4.2006, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: нет
Всего: 22



Вот что я люблю в пригладном программировании, так это то, что чтобы показать кому-нибудь проект не надо показывать код smile . Стыдно smile
PM MAIL   Вверх
Pakshin A. S.
Дата 3.4.2006, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Цитата(Serkys @ 3.4.2006, 22:36 Найти цитируемый пост)
Стыдно

Что стыдно?
PM   Вверх
Serkys
Дата 4.4.2006, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: нет
Всего: 22



Цитата(Pakshin A. S. @ 3.4.2006, 23:39 Найти цитируемый пост)
Что стыдно?

Ламерства стыдно. Обычно те, кто мой код смотрят, или офигенные гуру, или те, кто вообще это считает шифровками какими-то smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1616 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.