Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Основной форум

Основной форум Сюда все проблемы связанные с программированием.

Ответ
 
Опции темы
Старый 03.02.2009, 22:53   #1
beZ_probleM
ПроЭктировщик
 
Регистрация: 31.03.2008
Сообщений: 134
Написано 8 полезных сообщений
(для 8 пользователей)
чо за?...

блин у меня мозги уже плавлятсо от кодинга))
подскажыте почему не работает :

procedure read_(k:string);
var 
res:resource;
    
g:string;
    
i:integer;
begin
res
:=openresource(k);
if (
resourceAvailable(res)) then 
   begin
     g
:=readline(res);
     
repeat
       
if (g='1') or (g='2') or (g='3') or (g='4'then
          begin
            i
:=stringtointeger(g);
          
end
       
else
          
begin
            para
[i].nazva:=g;
            
para[i].prepod:=readline(res);
            
para[i].aud:=readline(res);
          
end;
      
g:=readline(res);
     
until g='#';
   
end;
CloseResource(res); 
end
Пример содержымого файла :
1
Лек. Об’єктивно–орієнтовне програмування
Лісовець
Аудиторія:1-0413
2
Лек. Релігієзнавство
Множинська Р.В.
Аудиторія:4-0505
#
проблема 1оо% не в имени файла а в считывании с файла...
(Offline)
 
Ответить с цитированием
Старый 03.02.2009, 23:09   #2
temned
Знающий
 
Аватар для temned
 
Регистрация: 29.07.2008
Адрес: Россия,Саратов
Сообщений: 206
Написано 22 полезных сообщений
(для 33 пользователей)
Ответ: чо за?...

Может с кодироовкой что?
(Offline)
 
Ответить с цитированием
Старый 03.02.2009, 23:50   #3
beZ_probleM
ПроЭктировщик
 
Регистрация: 31.03.2008
Сообщений: 134
Написано 8 полезных сообщений
(для 8 пользователей)
Ответ: чо за?...

наверно со шрифтом... а в какой кодировке нужно сохранять чтоб можно было читать русские буквы из этого .txt-файла?

у меня есть пример обработки русских символов... но я непомню для какой ето кодировки, тоесть какая кодировка должна быть в файле :
Function StrToUtf8(sstring;): string// Корректирует русскую кодировку в строках взятых из ресурсов...
var icintegerchcharssstring;
begin
    
if (pos(s,chr(65488))<>-1) or (pos(s,chr(65489))<>-1then begin // если строка содержит русские симовлы, то
        
for i:=1 to Length(s) do begin // перебираем строку
            
ch:=GetChar(s,i-1); c:=ord(ch);    // берем по байтику
            
if c=65488 then begin                // если байт равен 65488, то следующий байт отвечает за русскую букву
                
ss:=ss+CHR(ord(GetChar(s,i))-64384);    // находим русскую букву и запоминаем
                
i:=i+1;                                                                // это чтобы мы перешли на следующую букву, а не брали следующий байт
            
end
            
else begin
                
if c=65489 then begin                        // то же самое но с другим байт-кодом
                    
ss:=ss+chr(ord(GetChar(s,i))-64320);
                    
i:=i+1;
                
end
                
else ss:=ss+ch;                                        // если это не русская буква, то просто ее добавим
            
end;
        
end;
        
StrToUtf8:=ss;                            // возвращаем откорректированный текст
    
end
    
else StrToUtf8:=s;            // если строка не содержала русских букв, то просто ее и возвратим...
end
(Offline)
 
Ответить с цитированием
Старый 04.02.2009, 01:37   #4
temned
Знающий
 
Аватар для temned
 
Регистрация: 29.07.2008
Адрес: Россия,Саратов
Сообщений: 206
Написано 22 полезных сообщений
(для 33 пользователей)
Ответ: чо за?...

кинь исходник
(Offline)
 
Ответить с цитированием
Старый 04.02.2009, 02:40   #5
beZ_probleM
ПроЭктировщик
 
Регистрация: 31.03.2008
Сообщений: 134
Написано 8 полезных сообщений
(для 8 пользователей)
Ответ: чо за?...

Сообщение от TEMNED Посмотреть сообщение
кинь исходник
а что по твоему я бросал ещё в самом начале?
(Offline)
 
Ответить с цитированием
Старый 04.02.2009, 09:14   #6
Banan
Нуждающийся
 
Регистрация: 03.10.2008
Сообщений: 61
Написано 13 полезных сообщений
(для 44 пользователей)
Ответ: чо за?...

Попробуй в файле после знака # оставить пустую строку. У меня при похожей ситеме как раз из за этого зависало.
(Offline)
 
Ответить с цитированием
Старый 04.02.2009, 10:10   #7
VM
Оператор ЭВМ
 
Регистрация: 24.09.2007
Сообщений: 36
Написано 2 полезных сообщений
(для 3 пользователей)
Re: чо за?...

Обычно в конце файла пишу:
eof
---
В цикле until g = 'eof';
Всё работает...
(Offline)
 
Ответить с цитированием
Старый 04.02.2009, 12:38   #8
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Ответ: чо за?...

все дело в том, что строка с "#" или с "eof" тоже должна заканчиваться переводом строки
(Offline)
 
Ответить с цитированием
Старый 04.02.2009, 15:23   #9
VM
Оператор ЭВМ
 
Регистрация: 24.09.2007
Сообщений: 36
Написано 2 полезных сообщений
(для 3 пользователей)
Re: Ответ: чо за?...

Сообщение от pilgrim Посмотреть сообщение
все дело в том, что строка с "#" или с "eof" тоже должна заканчиваться переводом строки
Все правильно, я это имел ввиду, когда написал:
eof
--- << Это обязательная строка, т.к. просто перевод строки, после которого нет текста, некоторые текстовые редакторы удаляют автоматом.
(Offline)
 
Ответить с цитированием
Старый 04.02.2009, 16:38   #10
beZ_probleM
ПроЭктировщик
 
Регистрация: 31.03.2008
Сообщений: 134
Написано 8 полезных сообщений
(для 8 пользователей)
Ответ: чо за?...

кароче проблема не в той строке на которую заканчивается файл а в том что оно читать не хочет файл когда я сохраняю его в кодировке Юникод(UTF-8 )

когда же сохраняю в обычной кодировке блокнота то оно читает нормально, токо вместо русского текста "ИЕРОГЛИФЫ" какието пишет...

вобщем проблема в кодировке я так понял...
и странно что функция StrToUtf8,которую я выложыл выше, не спасает...
(Offline)
 
Ответить с цитированием
Старый 04.02.2009, 16:43   #11
temned
Знающий
 
Аватар для temned
 
Регистрация: 29.07.2008
Адрес: Россия,Саратов
Сообщений: 206
Написано 22 полезных сообщений
(для 33 пользователей)
Ответ: чо за?...

Program read; 
const 
voprosy = 20; 
var 
v,po,o1,o2,o3: array[1..voprosy] of string; 
c: integer; 



procedure read(t: string); 
var 
res : resource; 
byte,c,c1: integer; 
line,a1,a2 : string; 
f: boolean; 

begin 
res := openResource(t); 
if (resourceAvailable(res)) then begin 
a1:='АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'; 
a2:='абвгдежзийклмнопрстуфхцчшщъыьэюя'; 

for c:=1 to voprosy do begin 
line:=''; 
repeat begin 
byte := readByte(res); f:=true; 
if byte<> 13 then begin 
for c1:=0 to 32 do begin 
if byte=(-64+c1) then begin line:=line+copy(a1,c1,c1+1);f:=false;break;end; 
if byte=(-32+c1) then begin line:=line+copy(a2,c1,c1+1);f:=false;break;end; 
end; 

if byte=(-88) then begin line:=line+'Ё';f:=false;end; 
if byte=(-72) then begin line:=line+'ё';f:=false;end; 
if f then line:=line+chr(byte); 

end;end; until byte = 13; 
byte := readByte(res); 
o3[c]:=line; 
end; 
closeResource(res); 
end; end; 

begin 
read ('/v.txt'); for c:=1 to voprosy do v[c]:=o3[c]; 
read ('/po.txt'); for c:=1 to voprosy do po[c]:=o3[c]; 
read ('/o1.txt'); for c:=1 to voprosy do o1[c]:=o3[c]; 
read ('/o2.txt'); for c:=1 to voprosy do o2[c]:=o3[c]; 
read ('/o3.txt'); 
end.
это задумка одного парня-чтение русских строк из
(Offline)
 
Ответить с цитированием
Старый 04.02.2009, 17:16   #12
beZ_probleM
ПроЭктировщик
 
Регистрация: 31.03.2008
Сообщений: 134
Написано 8 полезных сообщений
(для 8 пользователей)
Ответ: чо за?...

без описания сложно розобратсо... мож из этого написать функцию которайа бы в свой результат передавала строку с нормальными символами в кодировке для вывода на дисплей мобильного?
или хоть коменты напишы что где означает... ато я ток понял шо строки мы сохраняем в массив...
вобщем понятно то что ничего не понятно)
(Offline)
 
Ответить с цитированием
Старый 04.02.2009, 17:29   #13
temned
Знающий
 
Аватар для temned
 
Регистрация: 29.07.2008
Адрес: Россия,Саратов
Сообщений: 206
Написано 22 полезных сообщений
(для 33 пользователей)
Ответ: чо за?...

Хорошо. вечером зайду в сеть, попытаюсь че-нить сделать. просто сясь на миниопера. ЕСЛИ ТЕ НЕ трудно скинь твой текст уже в нужной кодировке. Попробую разобраться вечером, самому стало интересно.
(Offline)
 
Ответить с цитированием
Старый 04.02.2009, 17:38   #14
beZ_probleM
ПроЭктировщик
 
Регистрация: 31.03.2008
Сообщений: 134
Написано 8 полезных сообщений
(для 8 пользователей)
Ответ: чо за?...

текст я уже приводил какой должен быть в файле а кодировка Юникод(UTF-8 ) это 1оо%
(Offline)
 
Ответить с цитированием
Старый 04.02.2009, 18:38   #15
GRAY_WOLF
Разработчик
 
Аватар для GRAY_WOLF
 
Регистрация: 16.08.2008
Адрес: Нижегородская провинция
Сообщений: 389
Написано 48 полезных сообщений
(для 93 пользователей)
Ответ: чо за?...

Сообщение от beZ_probleM Посмотреть сообщение
текст я уже приводил какой должен быть в файле а кодировка Юникод(UTF-8 ) это 1оо%
Погляди здесь http://forum.boolean.name/showthread.php?t=7592
пример выложен - там перекодировка из win1251 > utf8 поиск в ресурсном файле и вывод на дисплей со скролингом.
__________________
- Это мы накодили WINDOWS,
- Это мы надкусили APPLE,
- Нам играют живые The Beatles
- И нестареющий Вова Высоцкий...
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 22:13.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com