Модест Свободен |
04-07-2006 - 19:55
Значит криво пользуешь ) Вышеупомянутый способ + обратно 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 Свободен |
05-07-2006 - 21:12 Согласен с Модест... В суть вопроса сразу не вник, вот и указал не ту функцию... Хотя сам для перекодировки DOS <-> WindowS пользуюсь именно ими... обеими... |
||||||||
xTriplex Свободен |
11-07-2006 - 01:25 Вот это работает 100%...в принципе как и у всех остальных... ........................................................ var N: PChar; ... Memo1.Lines.LoadFromFile('dos.txt'); N := Memo1.Lines.GetText; OemToAnsi(N, N); Memo1.Lines.Text := StrPas(N); ........................................................ |
||||||||
-=Велла=- Свободна |
12-07-2006 - 17:40 Ребята, спасибо за ответы.. я пока не все, но попробовала.. но нифига не получилось А вот такой вопрос: а если есть файл формата .xls , составленный в Excel, как из него взять данные нужные и потом в текстовый файл преобразовать? Или может в какой компонент можно загрузить в виде таблицы и из компонента их брать? сорри, если не ясно выражаюсь.. |
||||||||
xTriplex Свободен |
13-07-2006 - 00:04
1 - преобразования замечательно работают...не поленился прям щас запустил Delphi...вот те полный код унитки...лично проверил - РАБОТАЕТ!!!
2 - Есть такая штука, как ExcelWorkbook и иже с ними на вкладке Servers...почитай к ним хэлп...там все написано...можно в принципе и через макрос...это на любителя... Удачи в твоем нелегком деле. |
||||||||
-=Велла=- Свободна |
13-07-2006 - 00:46 Спасибо, буду пробовать... у меня теперь целый месяц впереди.. )) |
||||||||
WILD_STRANGER Свободен |
22-07-2006 - 05:21 Вопросик! Может кто с лета ответит ... я ж блин замучался ) Суть: Есть страничка с расширением .SHTML (SSI) в нее включена вот такая вставка <!--#include virtual="/cgi-bin/rtest.pl?C=1296&R=956&HRes=218"--> Как мне получить QUERY_STRING для вставки, а не для всей страницы, проблема возникла со сменой сервера, на предьидущем было как нада ... |
||||||||
Свободен |
22-07-2006 - 13:17
Ээээ... Язык? Где получить? |
||||||||
WILD_STRANGER Свободен |
24-07-2006 - 13:32
Perl ... на странице вставки... |
||||||||
Jukss Свободен |
13-08-2006 - 03:02 Вопрос насчет печати отчетов в delphi 7 с помощью Rave Report. Вместо русских букв отображается какая-то ерунда. Причем только в работающей программе, а в предварительном просмотре Rave Designer все нормально. |
||||||||
Модест Свободен |
14-08-2006 - 13:52 либо шрифт виноват, либо кодировка. Покрути соотв. св-ва компонентов. |
||||||||
xTriplex Свободен |
15-08-2006 - 00:13
Это шрифт...вероятнее ввсего набор символов (не Кирилица, а допустим Американский)....ищи там... |
||||||||
Еремей Ежов Свободен |
04-10-2006 - 13:03 братья-сишники! кто имеет информацию о классе CCompressedFile ? где добыть исходник и как подключить к программе ? |
||||||||
xTriplex Свободен |
07-11-2006 - 01:49 Братья компутерщики...пара вопросов.. Вопрос номер 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 Свободен |
13-11-2006 - 02:05
Ребят...помогите плиз.... |
||||||||
adia Свободен |
13-11-2006 - 09:55 Давно никто не помогает. Попробую высказать свои замечания (я Делфи знаю поверхностно, и Паскаль ненавижу). Что бросилось в глаза - 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 Свободен |
16-11-2006 - 01:17
Любой ответ НАМНОГО лучше, чем молчание...
Цитата из хелпа...
Очевидно, что все в норме...да и юзал я так уже раньше, все было в норме...
Скорее всего ты прав, но свойство объекта объявлено как байт. З.Ы. А как ты в Билдере Цвет на РГБ разбиваешь??? Мож дело как раз в этом...я попробую по твоему методу... Заранее спасибо.. |
||||||||
adia Свободен |
16-11-2006 - 09:12
Неправы ни Вы, ни я. Дело в том, что в Паскале файл имеет некоторую длину записи. И по умолчанию эта длина 128. Т.е каждый оператор BlockWrite(F, х, n); выводит 128хn байт начиная с адреса х. (Обратите внимание, длина получающегося у Вас файла в 128 раз больше чем надо). Что бы устранить это надо установить длину записи файла =1. ReWrite(F, 1); { Вот так!} Еще раз убедился в маразматичности Паскаля. Про CBuilder я ошибся. Там не проще. Pixels[X][Y] - целое число, и я сам его разбираю на составляющие RGB. Это сообщение отредактировал adia - 16-11-2006 - 09:13 |
||||||||
xTriplex Свободен |
16-11-2006 - 23:51
Просвяти как именно...я раньше не сталкивался....просто взял компонент...хочу сам разложить для надежности...а то у компонента того нету исходника, посмотреть негде... |
||||||||
adia Свободен |
17-11-2006 - 08:19
Ну так примерно. 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 Свободна |
18-12-2006 - 01:34 Ребята , у меня вопрос по DataGridView (.NET) Как зделать двойной заголовок? ------------------------- Первый заголовок 1 ------------------------- 1.1 | 1.2 ------------------------- |
||||||||
MooD Свободен |
18-12-2006 - 13:24 Люди добрые помогите объясните мне начинающиму не опытному программисту!) Для чего нам класс.. Суть его работы?!.. У меня курсовая работа называется Библиотека классов с большими числами, а в пояснении написанно с математическими операциями. Так вот программку эту я накатал для математич.оперц. и сделал чтоб ещё выводило всё это на экран. А вот как мне туда этот класс засунуть, да если бы понять его суть,.. Перечитываю книги, две книни пересмотрел и всё равно ни чего не помогает((( .. |
||||||||
vaska_28 Свободна |
19-12-2006 - 12:42
Класс создаётся для того что бы обобщить определённую функциональность. В классе могут быть пременные и функции. Цель создать проверенный кусок кода и использовать его потом (reuse). |
||||||||
ВАССО Свободен |
03-02-2007 - 01:56 Подскажите пжалуйста какой прогой открыть файл с расширением VSD |
||||||||
Свободен |
03-02-2007 - 13:15
Microsoft Visio |
||||||||
ВАССО Свободен |
04-02-2007 - 00:11 А где её взять то? |
||||||||
Свободен |
04-02-2007 - 02:06
Нашли у кого спросить. :) Тут. |
||||||||
солнышко1975 Свободна |
07-02-2007 - 13:27 Посоветуйте какой нибудь анти-вирус. У меня проблемы с компом, говорят вирус, вот и хочу проверить. Хотела сначала винду поменять да говорят не поможет. |
||||||||
Свободен |
07-02-2007 - 13:57
Попробуйте NOD32. |
||||||||
солнышко1975 Свободна |
07-02-2007 - 14:09
А можно поточнее куда там нажимать:( у меня много ссылок вышло, а в английском я не сильна |
||||||||
Свободен |
07-02-2007 - 14:12
|
||||||||
-=Велла=- Свободна |
08-02-2007 - 15:33 ЧТо-то вопросы не по разделу пошли совсем. |
||||||||
ole256 Свободен |
09-02-2008 - 23:04 Господа, помогите. Сегодня вдруг Delphi7 после запуса проекта на исполнение (Run, он же F9) начал работать стабильно медленнее в 5 раз. Банально выпадающий список открывается 2 секунды. Переустановка не помогла. Что делать? Буду очень признателен за совет. |
||||||||
Свободен |
08-12-2008 - 20:16 Хочу заюзать один яваскрипт, созданный для ресурса вконтакте. Скрипт 100% рабочий, работает у всех, кроме меня. Как я пытаюсь сделать: Захожу на нужную страничку, вставляю его в адресную строку, нажимаю ентер. Далее опера выдает ошибку: Адрес недоступен с этого компьютера. Убедитесь, что веб-адрес (URL) введен правильно, и попытайтесь перезагрузить страницу. Убедитесь, что соединение с Интернет активно, и проверьте, работают ли другие приложения, использующие это соединение. Что я делаю не так??? |
||||||||
Свободен |
27-03-2009 - 18:51 Какая активность в топике ммм! :) |