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

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

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

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

Ответ
 
Опции темы
Старый 15.10.2008, 08:38   #1
beZ_probleM
ПроЭктировщик
 
Регистрация: 31.03.2008
Сообщений: 134
Написано 8 полезных сообщений
(для 8 пользователей)
Восклицание русский текст из .txt ресурса

Значить так, код должне выводить русский текст из текстового файла в ресурсе. Но проблема в том что ОН НЕ ВЫВОДИТСО ... выводятся токо какието иероглифы и получаетсо что ета функцыя(см.ниже) не работает??о_О потомучто функцыя about_rasa не возвращает русский текст а какието кубики вместо букв... что не правильно?? говорят функцыя StrToUtf8 работает...

Function StrToUtf8(s: string;): string; // Корректирует русскую кодировку в строках взятых из ресурсов...
var i, c: integer; ch: char; ss: string;
begin
	if (pos(s,chr(65488))<>-1) or (pos(s,chr(65489))<>-1) then 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;

function about_rasa(a:string):string;
  var res : resource;
  begin  
    res := openResource('/'+a+'.txt');
    if (resourceAvailable(res)) then about_rasa:=StrToUtf8(readLine(res)); 
    closeResource(res); 
  end;
(Offline)
 
Ответить с цитированием
Старый 15.10.2008, 09:03   #2
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: русский текст из .txt ресурса

Странный какой-то код у тебя. В какой кодировке текст в файле? UTF-8? Посмотри это: http://forum.boolean.name/showthread.php?t=6856
(Offline)
 
Ответить с цитированием
Старый 16.10.2008, 14:45   #3
beZ_probleM
ПроЭктировщик
 
Регистрация: 31.03.2008
Сообщений: 134
Написано 8 полезных сообщений
(для 8 пользователей)
Ответ: русский текст из .txt ресурса

Проблема какбы решена. Я сохранял .txt-файлы в кодировке UTF-8 и оно нормально читает русский текст. НО перед этим русским текстом откудато берётсо и выводитсо три кубика

например:
̕▓̕▓̕▓ето наш русский текст из файла

Шо ето за кубики? оО
(Offline)
 
Ответить с цитированием
Старый 16.10.2008, 23:57   #4
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: русский текст из .txt ресурса

О_о Ты, наверно, сохраняешь текст не в UTF-8, а UNICODE BOM!
(Offline)
 
Ответить с цитированием
Старый 17.10.2008, 00:19   #5
EVIL_USER
ПроЭктировщик
 
Регистрация: 13.11.2006
Сообщений: 101
Написано 6 полезных сообщений
(для 6 пользователей)
Ответ: русский текст из .txt ресурса

Кубики это метка кодировки, блокнот добавляет 3 байта.
Сотри винхексом.
(Offline)
 
Ответить с цитированием
Старый 17.10.2008, 00:32   #6
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: русский текст из .txt ресурса

Я думал, UTF-8 не добавляет метку. Видимо на этом не задерживался при ковырянии кодировки. гг.
(Offline)
 
Ответить с цитированием
Старый 17.10.2008, 23:04   #7
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: русский текст из .txt ресурса

С этой меткой вообще что-то странное, байты видны только в HEX-режиме, если даже читать файл в потоке (под вындоуз), байты метки не читаются.
(Offline)
 
Ответить с цитированием
Старый 18.10.2008, 01:37   #8
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: русский текст из .txt ресурса

о_О_о
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
чтение ресурса TXT Aziz Основной форум 12 26.02.2014 16:57
Русский текст Черный Лорд FAQ 9 26.11.2013 01:20
Русский текст в GET запросах jkeks Основной форум 4 21.04.2008 14:23
Развитие ресурса... johnk Наш форум 14 05.03.2007 18:56


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


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