Текущий архив: 2004.02.25;
Скачать: CL | DM;
ВнизПомагите перенести код с паскаля на си Найти похожие ветки
← →
AsbAlex (2004-02-08 01:23) [0]Код в принципе кароткий ну вообщем вот и он:
procedure TRASReader.ProcessLSABuffer(Buffer: PWideChar; BufLen: LongWord);
var
c: Char;
i, SPos: Integer;
S, BookID: String;
begin
S := ""; SPos := 0; BookID := "";
for i := 0 to BufLen div 2 - 2 do begin
c := WideCharLenToString(@Buffer[i], 1)[1];
if c = #0 then begin
SPos := SPos + 1;
case SPos of
1: BookID := S;
7: if S <> "" then FLSAList.Values[BookID] := S;
end;
S := "";
end else
S := S + c;
if SPos = 9 then begin
BookID := "";
SPos := 0;
end;
end;
end;
З.Ы.
Помагите кто может очень надо.
Если ВЫ находитесь в Ашхабаде могу расплатица пивом.
← →
Rouse_ (2004-02-08 01:47) [1]WideCharLenToString = WideCharToString
← →
TUser (2004-02-08 11:12) [2]procedure = void ... (...)
Переменные оописывать так
char c;
int i, SPos;
:= = =
" = "
case = switch
for ... = for (i=0;i<=скока надо; i++) {};
begin = {
end = }
a div b = (a - a%b)/b
Все остальное вроде должно пахать.
Пыво шлите этот адрес mailto:evaksianov@mail.ru
← →
F@TE (2004-02-08 12:38) [3]
void TRASReader :: ProcessLSABuffer (Buffer* char, BufLen LongInt)
{
char c;
char S[255] = {""}, BookID[255] = {""};
for (int i = 0, SPos = 0; i <= ((int)BufLen/2) - 2; i++)
{
c = WideCharToString (Buffer[i], 1);
if (c == 0)
{
SPos++;
switch (SPos)
{
case 1: strcpy (BookID, S); break;
case 7:
if (strlen(S))
{
// Тут надо знать что, за типы и etc
FLSAList->Values[BookID] = S;
FLSAList.Values[BookID] = S;
}
}
S[0] = "\0";
}
else
{
S[strlen(S)] = c;
if (SPos == 9)
{
BookID[0] = "\0";
SPos = 0;
}
}
}
}
Работоспособность проверить негде :(
Ошибки есть обязательно :(
← →
AsbAlex (2004-02-10 02:03) [4]Всем спасибо я уже разобрался.
← →
VMcL (2004-02-10 07:10) [5]>>TUser © (08.02.04 11:12) [2]
>a div b = (a - a%b)/b
Это новый вид извращения в C.
Страницы: 1 вся ветка
Текущий архив: 2004.02.25;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.034 c