Модест | ||||||||
Значит криво пользуешь ) Вышеупомянутый способ + обратно function WinToDos(St:string):string; var Ch:PChar; begin Ch:=StrAlloc(Length(St)+1); AnsiToOem(PChar(St),Ch); Result:=Ch; StrDispose(Ch) end; function DosToWin(St:string):string; var Ch:PChar; begin Ch:=StrAlloc(Length(St)+1); OemToAnsi(PChar(St),Ch); Result:=Ch; StrDispose(Ch) end; |
||||||||
RoyalFlesh | ||||||||
Согласен с Модест... В суть вопроса сразу не вник, вот и указал не ту функцию... Хотя сам для перекодировки DOS <-> WindowS пользуюсь именно ими... обеими... |
||||||||
xTriplex | ||||||||
Вот это работает 100%...в принципе как и у всех остальных... ........................................................ var N: PChar; ... Memo1.Lines.LoadFromFile('dos.txt'); N := Memo1.Lines.GetText; OemToAnsi(N, N); Memo1.Lines.Text := StrPas(N); ........................................................ |
||||||||
-=Велла=- | ||||||||
Ребята, спасибо за ответы.. я пока не все, но попробовала.. но нифига не получилось ![]() А вот такой вопрос: а если есть файл формата .xls , составленный в Excel, как из него взять данные нужные и потом в текстовый файл преобразовать? Или может в какой компонент можно загрузить в виде таблицы и из компонента их брать? сорри, если не ясно выражаюсь.. |
||||||||
xTriplex | ||||||||
1 - преобразования замечательно работают...не поленился прям щас запустил Delphi...вот те полный код унитки...лично проверил - РАБОТАЕТ!!!
2 - Есть такая штука, как ExcelWorkbook и иже с ними на вкладке Servers...почитай к ним хэлп...там все написано...можно в принципе и через макрос...это на любителя... Удачи в твоем нелегком деле. |
||||||||
-=Велла=- | ||||||||
Спасибо, буду пробовать... у меня теперь целый месяц впереди.. )) | ||||||||
WILD_STRANGER | ||||||||
Вопросик! Может кто с лета ответит ... я ж блин замучался ) Суть: Есть страничка с расширением .SHTML (SSI) в нее включена вот такая вставка <!--#include virtual="/cgi-bin/rtest.pl?C=1296&R=956&HRes=218"--> Как мне получить QUERY_STRING для вставки, а не для всей страницы, проблема возникла со сменой сервера, на предьидущем было как нада ... |
||||||||
JeyLo | ||||||||
Ээээ... Язык? Где получить? |
||||||||
WILD_STRANGER | ||||||||
Perl ... на странице вставки... |
||||||||
Jukss | ||||||||
Вопрос насчет печати отчетов в delphi 7 с помощью Rave Report. Вместо русских букв отображается какая-то ерунда. Причем только в работающей программе, а в предварительном просмотре Rave Designer все нормально. | ||||||||
Модест | ||||||||
либо шрифт виноват, либо кодировка. Покрути соотв. св-ва компонентов. | ||||||||
xTriplex | ||||||||
Это шрифт...вероятнее ввсего набор символов (не Кирилица, а допустим Американский)....ищи там... |
||||||||
Еремей Ежов | ||||||||
братья-сишники! кто имеет информацию о классе CCompressedFile ? где добыть исходник и как подключить к программе ? | ||||||||
xTriplex | ||||||||
Братья компутерщики...пара вопросов.. Вопрос номер 1 Суть задачи...мне надо из изображения размером Х на У сделать 3 массива раземром [Х, У] в каждом из которых находиться данные о R, G и B составляющей цвета... Формат файла - первые 8 байт - значение Х и У Затем массив байт R затем G затем В Вот мой код... procedure TfrmMain.btnCreateArray1Click(Sender: TObject); Var F : File; X, Y : Integer; W, H : Integer; begin If Not SaveDlg1.Execute Then Exit; AssignFile(F, SaveDlg1.FileName+'.rgb'); ReWrite(F); W := img1.Picture.Width; H := img1.Picture.Height; BlockWrite(F, W, 4); BlockWrite(F, H, 4); For Y := 0 To H - 1 Do For X := 0 To W - 1 Do Begin // ClrConverter -зто компонент для разложения цвета на RGB составляющие ClrConverter.Color := img1.Canvas.Pixels[X,Y]; BlockWrite(F,ClrConverter.R, 1); End; For Y := 0 To H - 1 Do For X := 0 To W - 1 Do Begin ClrConverter.Color := img1.Canvas.Pixels[X,Y]; BlockWrite(F,ClrConverter.G, 1); End; For Y := 0 To H - 1 Do For X := 0 To W - 1 Do Begin ClrConverter.Color := img1.Canvas.Pixels[X,Y]; BlockWrite(F,ClrConverter.B, 1); End; CloseFile(F); end; Вроде все так...но...суть проблемы в том, что файл для картинки размером 352х288 пикселей получаеться размером 38 929 408 байт...хотя должен быть 8+352*288*3 = 304 136 байт... При просмотре файла там часто повторяються куски типа "352x28 saveDlg1" В чем проблема???? И вопрос номер 2 Вот кусок кода с обратным преобразованием из массивов в картинку... procedure TfrmMain.btnLoadArray2Click(Sender: TObject); Var F : File; W, H, X1, Y1 : Integer; R, G, B : Byte; begin If Not OpnDlg2.Execute Then Exit; AssignFile(F, OpnDlg2.FileName); Reset(F); BlockRead(F, W, 4); BlockRead(F, H, 4); img2.Width := W; img2.Height := H; For Y1 := 0 To H-1 Do For X1 := 0 To W-1 Do Begin ClrConverter.Color := 0; BlockRead(F, R, 1); ClrConverter.R := R; Application.ProcessMessages; img2.Canvas.Pixels[X1, Y1] := ClrConverter.Color; End; .............. И суть проблемы... Значения Width и Height читаються из файла нормально (смотрел при отладке)... А в цикле получаеться, что Y1=32 тысячи с копейками (точно не помню)... При замене вот этого кода For Y1 := 0 To H-1 Do For X1 := 0 To W-1 Do Вот этим For Y1 := 0 To 287 Do For X1 := 0 To 351 Do Считывает без проблем...но мне эт не надо...мне надо читать значения ширины и высоты именно из файла... В чем проблема??? Заранее спасибо за помощь... |
||||||||
xTriplex | ||||||||
Ребят...помогите плиз.... |
||||||||
adia | ||||||||
Давно никто не помогает. Попробую высказать свои замечания (я Делфи знаю поверхностно, и Паскаль ненавижу). Что бросилось в глаза - BlockWrite(F, W, 4); и BlockRead(F, W, 4); Чего то мне кажется, что 4 тут будет не 4 байта, а 4 раза значение Integer. (те 16 байт). Вроде как третий параметр в этих функциях это не длинна в байтах, а кол-во записей. Про BlockWrite(F,ClrConverter.B, 1); сказать не могу, в CВuilder, которым я пользуюсь это делается попроще. Тут просто надо быть твердо уверенным, что длина ClrConverter.B точно 1 байт. Для объектов это совсем не очевидно. Извиняйте, если чушь спорол. Это сообщение отредактировал adia - 13-11-2006 - 09:59 |
||||||||
xTriplex | ||||||||
Любой ответ НАМНОГО лучше, чем молчание... ![]()
Цитата из хелпа...
Очевидно, что все в норме...да и юзал я так уже раньше, все было в норме...
Скорее всего ты прав, но свойство объекта объявлено как байт. З.Ы. А как ты в Билдере Цвет на РГБ разбиваешь??? Мож дело как раз в этом...я попробую по твоему методу... Заранее спасибо.. |
||||||||
adia | ||||||||
Неправы ни Вы, ни я. Дело в том, что в Паскале файл имеет некоторую длину записи. И по умолчанию эта длина 128. Т.е каждый оператор BlockWrite(F, х, n); выводит 128хn байт начиная с адреса х. (Обратите внимание, длина получающегося у Вас файла в 128 раз больше чем надо). Что бы устранить это надо установить длину записи файла =1. ReWrite(F, 1); { Вот так!} Еще раз убедился в маразматичности Паскаля. Про CBuilder я ошибся. Там не проще. Pixels[X][Y] - целое число, и я сам его разбираю на составляющие RGB. Это сообщение отредактировал adia - 16-11-2006 - 09:13 |
||||||||
xTriplex | ||||||||
Просвяти как именно...я раньше не сталкивался....просто взял компонент...хочу сам разложить для надежности...а то у компонента того нету исходника, посмотреть негде... |
||||||||
adia | ||||||||
Ну так примерно. int col unsigned char r, g, b; //.............................. col= ... Canvas->Pixels[X][Y]; r=col & 0xFF; g=(col>>8) & 0xFF; b=(col >> 16) & 0xFF; И назад собрать. Canvas->Pixels[X][Y]=(b<<16) | (g<<8) | r; |
||||||||
vaska_28 | ||||||||
Ребята , у меня вопрос по DataGridView (.NET) Как зделать двойной заголовок? ------------------------- Первый заголовок 1 ------------------------- 1.1 | 1.2 ------------------------- |
||||||||
MooD | ||||||||
Люди добрые помогите объясните мне начинающиму не опытному программисту!) Для чего нам класс.. Суть его работы?!.. У меня курсовая работа называется Библиотека классов с большими числами, а в пояснении написанно с математическими операциями. Так вот программку эту я накатал для математич.оперц. и сделал чтоб ещё выводило всё это на экран. А вот как мне туда этот класс засунуть, да если бы понять его суть,.. Перечитываю книги, две книни пересмотрел и всё равно ни чего не помогает((( .. |
||||||||
vaska_28 | ||||||||
Класс создаётся для того что бы обобщить определённую функциональность. В классе могут быть пременные и функции. Цель создать проверенный кусок кода и использовать его потом (reuse). |
||||||||
ВАССО | ||||||||
Подскажите пжалуйста какой прогой открыть файл с расширением VSD | ||||||||
JeyLo | ||||||||
Microsoft Visio |
||||||||
ВАССО | ||||||||
А где её взять то? | ||||||||
JeyLo | ||||||||
Нашли у кого спросить. :) Тут. |
||||||||
солнышко1975 | ||||||||
Посоветуйте какой нибудь анти-вирус. У меня проблемы с компом, говорят вирус, вот и хочу проверить. Хотела сначала винду поменять да говорят не поможет. | ||||||||
JeyLo | ||||||||
Попробуйте NOD32. |
||||||||
солнышко1975 | ||||||||
А можно поточнее куда там нажимать:( у меня много ссылок вышло, а в английском я не сильна |
||||||||
JeyLo | ||||||||
|
||||||||
-=Велла=- | ||||||||
ЧТо-то вопросы не по разделу пошли совсем. | ||||||||
ole256 | ||||||||
Господа, помогите. Сегодня вдруг Delphi7 после запуса проекта на исполнение (Run, он же F9) начал работать стабильно медленнее в 5 раз. Банально выпадающий список открывается 2 секунды. Переустановка не помогла. Что делать? Буду очень признателен за совет. |
||||||||
Rotterdam | ||||||||
Хочу заюзать один яваскрипт, созданный для ресурса вконтакте. Скрипт 100% рабочий, работает у всех, кроме меня. Как я пытаюсь сделать: Захожу на нужную страничку, вставляю его в адресную строку, нажимаю ентер. Далее опера выдает ошибку: Адрес недоступен с этого компьютера. Убедитесь, что веб-адрес (URL) введен правильно, и попытайтесь перезагрузить страницу. Убедитесь, что соединение с Интернет активно, и проверьте, работают ли другие приложения, использующие это соединение. Что я делаю не так??? |
||||||||
Rotterdam | ||||||||
Какая активность в топике ммм! :) |