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

Вниз

Чтение из текстового файла   Найти похожие ветки 

 
#Master#   (2004-11-22 13:48) [0]

Помогите мастера!!! У меня есть текстовой файл, в который я записал все действия мышки в течение определённого времени(Я не знаю сколько строк в этом файле). Информация в файле имеет определённую структуру.
Например:
WM_MOUSEMOVE 868 638
WM_MOUSEMOVE 866 638
WM_MOUSEMOVE 865 638

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


 
Warlock ©   (2004-11-22 14:02) [1]

Массив записей


 
#Master#   (2004-11-22 14:13) [2]

Перефразирую вопрос(специально для Warlock"а): мне нужно распределить данные, находящиеся на одной строчке в текстовом файле и разделённые только пробелом, по разным переменным. И вообще можно поподробнее. Пожалуйста!!!


 
clickmaker ©   (2004-11-22 14:48) [3]

StringList.LoadFromFile
потом парсинг каждой строчки


 
#Master#   (2004-11-22 15:02) [4]

clickmaker, а можно поподробнее...


 
Ega23 ©   (2004-11-22 15:04) [5]

А куда подробнее?


 
#Master#   (2004-11-22 15:25) [6]

ЧТО ЭТО ЕСТЬ ПАРСИНГ????


 
TUser ©   (2004-11-22 15:30) [7]


> ЧТО ЭТО ЕСТЬ ПАРСИНГ????

Преобразование в удобную для работы форму. Например, в твоем случае - в массив записей, каждая из которых содержит 3 поля - сообщение, и 2 числа


 
Anatoly Podgoretsky ©   (2004-11-22 15:34) [8]

Parse = разбор(ка)


 
Anatoly Podgoretsky ©   (2004-11-22 15:35) [9]

Ты мастер в какой области?


 
clickmaker ©   (2004-11-22 15:41) [10]


> [4] #Master#   (22.11.04 15:02)
> clickmaker, а можно поподробнее...

парсинг строки - разбор на отдельные лексемы, разделенные каким-либо символом, в данном случае пробелом
Чешешь по строке в цикле, дошел до первого разделителя - записал часть строки до него в первую лексему и т.д.


 
cae ©   (2004-11-22 15:45) [11]

Вот самый простой вариант :

var
i : Integer ;
LSource,LParse : TStringList ;
Command,XPos,YPos : String ;
begin
LSource := TStringList.Create ;
LParse := TStringList.Create ;
LParse.Delimiter := " " ;
try
LSource.LoadFromFile("MyFile.txt");
  for i := 0 to LSource.Count - 1 do
  begin
   try
    LParse.DelimitedText := LSource[i] ;

    Command := LParse[0] ;
    XPos    := LParse[1] ;
    YPos    := LParse[2] ;
   except
    raise Exception.Create("Ошибка разбора");
   end ;
  end ; //for i
finally
 LSource.Free ;
 LParse.Free;
end ;
end;


 
#Master#   (2004-11-22 18:56) [12]

Спасибо всем!!! Парсинг я усвоил(тоже спасибо), а за код от cae ОГРОМНОЕ СПАСИБО!!! Ведь на примерах понимать новичку в этой области легче.:)))



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

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

Наверх





Память: 0.47 MB
Время: 0.034 c
1-1100970808
ЛёхА
2004-11-20 20:13
2004.12.05
Радактор кода


4-1098200620
crio
2004-10-19 19:43
2004.12.05
Работа со сканером


14-1100779938
Baks
2004-11-18 15:12
2004.12.05
Кнопки


3-1099568570
SergP
2004-11-04 14:42
2004.12.05
DBGRID. Узнать State для остальных ячеек строки в DrawColumnCell


1-1100684087
Woolen
2004-11-17 12:34
2004.12.05
Работа TPrintDialog вызывает непонятную ошибку





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский