Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2013, 18:14   #11
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

Смит идея работает на bdc.

Задача парсера проста...

создаём класс в котором есть явное ввиде мусора текст.

можно разбить парсером на подстроки

Код:
char* d = strtok(str,"\n");
while(d)
{
printf("%s\n",d);
d = strtok(NULL,"\n");
}
strtok делит str на токены где разделитель меж ними "\n"
можешь юзать и другие методы.
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Perchik71 вне форума Ответить с цитированием
Старый 30.01.2013, 18:42   #12
bambarbia
Пользователь
 
Регистрация: 20.10.2011
Сообщений: 44
По умолчанию

А если так, как передвинуть каретку на следующую строку, а ну вобщето понятно, спасибо

Последний раз редактировалось bambarbia; 30.01.2013 в 18:44.
bambarbia вне форума Ответить с цитированием
Старый 30.01.2013, 18:50   #13
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

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

Код:
pos = d - str;
и у вас получиться позиция в тексте...
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Perchik71 вне форума Ответить с цитированием
Старый 31.01.2013, 17:30   #14
bambarbia
Пользователь
 
Регистрация: 20.10.2011
Сообщений: 44
По умолчанию

идею понял, а я тут попробовал поменять функции <fstream> на <windows> и натолкнулся на новую делему, оказывается в файл не просто записать! данные. Вот посмотрите. Пишу:
Код:
for(int i = 0; i < 9; ++i)
			buf[i] = i; 
		file = CreateFile("File.txt",GENERIC_READ|GENERIC_WRITE, 0, NULL,  CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
		WriteFile(file, buf, 36, &dwCount, NULL);
В файл записываю закарючки, пробовал выключать UNICOD.
bambarbia вне форума Ответить с цитированием
Старый 31.01.2013, 17:48   #15
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

читаемые символы начинаются c 32 как бы.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.01.2013, 17:59   #16
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

И так... вам нужна работа с файлами...
Советую создать поток.

Что то вроде FileStream

При создании потока всегда идёт CreateFile почитайте о ней в мсдн
она позволяет так же делать доступ другим.
При уничтожении потока CloseHandle(тот heandle что вернёт CreateFile)
При создании потока проверяйте handle на верность INVALID_HANDLE_VALUE
При чтении ReadFile
При записи WriteFile
При изменении коретки SetFilePointer

учтите wchar_t это UNICODE т.е. 2 байта на букву
char ANSI 1 байт на букву.

Если хотите больше знать, то и в том и в том случаи у вас кодировка 1251 будет или КОИ-8r но есть и UTF-8 UTF-7 и OEM что является устаревшей.
_____________

В WriteFile(file, buffer, (тут 1 байт или 2 в зависимости типа буффера), (тут кол-во елементов), (тут возвращение записаных елементов), NULL); Если успех фуна вернёт true.

Короче я предлогаю запихать в файл весь буффер сразу... и проверить записалось ли всё.
Если помог, тут весы есть , Вам не сложно, а мне приятно.

Последний раз редактировалось Perchik71; 31.01.2013 в 18:21.
Perchik71 вне форума Ответить с цитированием
Старый 31.01.2013, 18:43   #17
bambarbia
Пользователь
 
Регистрация: 20.10.2011
Сообщений: 44
По умолчанию

нене у меня массив инт, поэтому я пишу виз буфера в размер 4Х9 по 4 байта на количество элементов всего 36 , а скодировками я знаком
bambarbia вне форума Ответить с цитированием
Старый 31.01.2013, 18:49   #18
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

Код:
int array[4][9];
....
int k;
for(int i = 0; i < 4; i++)
  WriteFile(handle, array[i], sizeof(int), 9, (LPDWORD)&k, NULL);
....
_____________

Код:
int array[4][9];
....
int k;
WriteFile(handle, array, sizeof(int), 36/*т.е. (4 * 9)*/, (LPDWORD)&k, NULL);
....
_____________

И вот ещё что... даже не думайте прочесть это блокнотом... вы увидите непонятные букашки.
Если помог, тут весы есть , Вам не сложно, а мне приятно.

Последний раз редактировалось Perchik71; 31.01.2013 в 18:55.
Perchik71 вне форума Ответить с цитированием
Старый 01.02.2013, 17:44   #19
bambarbia
Пользователь
 
Регистрация: 20.10.2011
Сообщений: 44
По умолчанию

Да, а чем читать и почему не возможно вывести ни куда, пробовал пропускать первый символ, тогда закорючки выводятся.Чем читать? Почему?
Сегодня целый день пробовал.
bambarbia вне форума Ответить с цитированием
Старый 01.02.2013, 18:17   #20
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

Цитата:
Сообщение от bambarbia Посмотреть сообщение
Да, а чем читать и почему не возможно вывести ни куда, пробовал пропускать первый символ, тогда закорючки выводятся.Чем читать? Почему?
Сегодня целый день пробовал.
Код:
int array[4][9];
....
int k;
for(int i = 0; i < 4; i++)
   ReadFile(handle, array[i], sizeof(int), 9, (LPDWORD)&k, NULL);
   printf("%i\n",array[i][4]);
....
_____________


Код:
int array[4][9];
....
int k;
ReadFile(handle, array, sizeof(int), 36/*т.е. (4 * 9)*/, (LPDWORD)&k, NULL);
....
printf("%i\n",array[2][4]);
Позиция в тексте должна быть точно такой же как при записи.. один байт и будет дрянь. Почему вы видете срань? видимо у вас пробелы в знаниях.. int в 32 разрядной проге занимает целых 4 байта... и адресовать может только 2 гига. в 64 разрядной он занимает все 8 байт. вы не можете это посмотреть ибо нужно знать как хотя бы 3 как число выглядит в двоичном представлении... на каждый байт уходит до 256 символов.. самое огромное число будет из одних "яяяя" в 4 байтном в блокноте.

_____

Хотите смотреть ваш кодик чтоб блокнотик понимал... я не случайно говорил про кодировки вы сказали знаете.
переведите ваше число в текст... желательно в 1251 в ANSI виде.
Если помог, тут весы есть , Вам не сложно, а мне приятно.

Последний раз редактировалось Perchik71; 01.02.2013 в 18:35.
Perchik71 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Парсинг данных *.txt Shouldercannon Общие вопросы Delphi 10 04.01.2017 22:44
Парсинг txt с разделителями табуляцией AlexKhol Общие вопросы Delphi 16 18.03.2012 18:33
Чтение из txt с помощью JS. Возможно? pro100-delphi JavaScript, Ajax 10 28.09.2009 20:58
Из *.txt в таблицу мускула.. возможно? krok PHP 4 28.02.2008 17:38