Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.01.16;
Скачать: [xml.tar.bz2];

Вниз

Глюки при считывании файла...   Найти похожие ветки 

 
NewGuest   (2002-12-29 18:29) [0]

Кто-нить может привести простенький пример... Надо из файла вставить в RichEdit текст, при чем так как он введен в файле Load не используйте, потому что у меня несколько таких сообщений, разделенных writeln


 
Юрий Зотов   (2002-12-29 18:43) [1]

А Вы все же попробуйте просто LoafFromFile. Серьезно.


 
NewGuest   (2002-12-29 19:14) [2]

Тогда это будет видно (как вставляет и вырезает)... а это плохо... Тогда, если идти этим методом можно через StringList...

Я попробовал след. способ...
Узнал длину сообщения
Затем записал его в файл посимвольно, но ГЛЮК... вводит только первую букву... а потом через ентер абракадабра... (соответсвует числу букв) ... Не пойму чё значит... вроде пробовал и просто TextFile и System.Text...
Кстати если вам не трудно не могли бы вы объяснить разницу между ними?


 
Юрий Зотов   (2002-12-29 19:26) [3]

Что вставляет? Кто вставляет? Что вырезает? Кто вырезает? Где и почему это будет видно? Почему это плохо? При чем тут StringList? Что Вы имеете в виду под словом "сообщение"? При чем тут посимвольная запись? Как Вы записываете и читаете файл?

Видимо, Вы полагаете, что кто-то умеет читать Ваши мысли на расстоянии. Может, кто и умеет, но не я.

А между TextFile и System.Text нет никакой разницы, и то, и другое - текстовый файл.

В общем, либо давайте Ваш код чтения-записи, либо объясните простыми русскими словами, что же Вам все-таки нужно.


 
NewGuest   (2002-12-29 23:28) [4]

Да, извините, я не много обшибся когда писал...

Вообщем:

Пользователь вводит текст в RichEdit и сохраняет в файл содержимое... Затем опять вводит и опять сохраняет, ВСЕ В ОДИН ФАЙЛ, т.е.
12.04.02
Сообщение1

13.04.02
Сообщение2

З.Ы. Это простые сообщения... но даже с ними у меня проблемы...

Затем пользователь хочет просмотреть сообщения... он нажимает кнопку и появляется в RichEdit(e) последнее сообщение, затем он как бы листает их... но не в этом вопрос... вопрос как считать данные из файла, причем только одного сообщения?

У меня родилась ещё одна идея... но вопрос, как узнать сколько строк в файле не filesize ???

Узнать сколько было строк ДО редактирования, и после... вычесть и узнаем кол-во строк, а затем через StringList скопировать полученное число строк в переменнную... и вставить... все.. буду пробовать...


 
Юрий Зотов   (2002-12-29 23:47) [5]

> как считать данные из файла, причем только одного сообщения?

Чтение первого сообщения.

var
F: TextFile;
S: string;
begin
RichEdit1.Lines.Clear;
AssignFile(F, FileName);
Reset(F);
while not EoF(F) do // Читаем до EoF или первой пустой строки
begin
Readln(F, S);
if S <> "" then RichEdit1.Lines.Add(S) else Break
end;
CloseFile(F);
end;


> как узнать сколько строк в файле не filesize ???

Нет. Количество строк в файле надо при его формировании записать в него же - например, в первой строке. Оттуда потом и прочитать.


Только для Вашей задачи все это не требуется. Вы же хотите читать сообщения в обратном порядке, а читать файл "наоборот" все равно не получится.

Грузите весь файл во временный TStringList, а потом перегоняйте из него строки в RichEdit. По одной, начиная с конца, в обратном порядке, путем Insert(0,...), пока не дойдете до пустой строки. Это будет загрузка последнего сообщения. Потом так же перегоняете предпоследнее - и т.д.




 
NewGuest   (2002-12-30 00:29) [6]

Спасибо Вам большое...!


 
NewGuest   (2002-12-30 00:33) [7]

А если есть пустая строка в самом сообщении... :(
Может есть смысл как нить всунуть то, что не сможет всунуть пользователь?


 
Юрий Зотов   (2002-12-30 00:46) [8]

Есть смысл всунуть любой символ, которого нет на клавиатуре и который не влияет на запись/чтение файла. Например, #1.


 
NewGuest   (2002-12-30 19:20) [9]

#1 может ввести пользователь... я думаю надо при сохранении посчитать наличие Ентеров посчитать их сохранить в файл их коль-во...
Затем все просто делается...


 
Угу   (2002-12-31 02:51) [10]

>NewGuest (30.12.02 19:20)
>#1 может ввести пользователь...

Ну он, то бишь пользователь, должен
ну очень постараться, чтобы ввести с клавиатуры #1. Я, лично, этого не могу сделать.


 
Ramzes   (2002-12-31 05:36) [11]

Посчитать кол-во строчек можно следующим сспособом:
var
strlist: tsringlist;
kolstrochek: integer;
begin
strlist:= tsringlist.create;
strlist.loadfromfile("file");
kolstrochek:= strlist.count-1;
end;

И в чем проблема???


 
Ramzes   (2002-12-31 05:43) [12]

При вводе сообщения в RichEdit надо запустить цикл, который переберет все символы на наличие символа #13 и заменить его на символ "§"(#21). Потом загружать все сообщения построчно, т.е. на одной строчке всякая ненужная инфа (время, дата и т.д.) а на другой текст сообщения. При загрузке сообщения запустить обратный цикл на восстановление из символа § в #13.


 
NewGuest   (2003-01-03 20:58) [13]

Ну это все ясно... Факт тот что я пытаюсь повторить алгоритм... И кто-то сделал так что в файле сообщения находятся так

Ваня
Сообщение1

Женя
Сообщение2

Сообщение3

Катя
Сообщение4

Вот... Я приблизился к этому так:
Считаю сколько символов всё сообщение и фиксирую это

Ваня
10
Сообщение1

И востанавливаю поочередно все сообщения пока не дойду до такого какой просит пользователь... всё замечательно но когда сообщений более 10 уже начинаешь чувствовать задержку... т.е. этот алгоритм не подойдет... вот приведу пример как КТО-ТО это выводит в своем файле

3 //Кол-во сообщений
Вася
03.01.2003
8
привет

Петя
03.01.2003
28
теперь с ентером
ха ха ха

Яна
03.01.2003
29
теперь с двумя

ентерами!

Вот я так и не смог понять по какому принципу он выводит числа...


 
NewGuest   (2003-01-04 22:23) [14]

#1
это толстая палочка?


 
Юрий Зотов   (2003-01-05 09:58) [15]

#1 - это невизуальный символ. На клавиатуре его нет (хотя любой символ можно ввести прямым Alt-вводом, но редкий юзер знает, что это такое, а тот который знает уже достаточно грамотен, чтобы им не пользоваться). Как и другие невизуальные символы, на экране может отображаться палочкой, квадратиком и т.п.


 
NewGuest   (2003-01-05 18:15) [16]

Кому надо листинг выложить?
Работает.

to Юрий Зотов...
У нас народ специально хочет все запороть...хоть и грамотный...

Большое спасибо всем!



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.01.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.01 c
14-49221
Дмитрий К.К.
2002-12-29 07:46
2003.01.16
Именинники 29 декабря


14-49276
Бородач
2002-12-23 10:50
2003.01.16
Не встает))


1-48992
ShelbiX
2003-01-06 23:41
2003.01.16
Фокус


14-49252
gsu
2002-12-26 18:37
2003.01.16
А нам завтра з/п дадут, на что бы потратить ?


3-48866
Eugene_S
2002-12-19 11:07
2003.01.16
Метод Seek -объявил забостовку (else сыканул)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский