Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2013, 09:18   #1
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию ByteToStr

Привет. Короче вот код:
Код:
function TFrmStringToByte.ByteToString(const Value:array [1..1024] of Byte): String;
var
    I: integer;
    S : String;
    Letra: char;
begin
    S := '';
    for I:=0 To sizeof(Value) Do 
    begin
        letra := Chr(Value[I] + 48);
        S := letra + S;
    end;
    Result := S;
end;
Смысл в том, что я преобразую массив байтов в строку(типо буффера при скачивание файла с помощью WinInet). Вопрос: Будет ли работать?
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 29.05.2013, 09:41   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,865
По умолчанию

1. Вот это: array [1..1024] of Byte, в отдельный тип данных вынесите.
2. Он у вас будет работать, только если значения от 0 до 9, а байт может быть до 255.
3. Массив индексируется с 1, а цикл с 0.
4. S := letra + S; - получим на выходе строку в обратном порядке.
Arigato вне форума Ответить с цитированием
Старый 29.05.2013, 09:45   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

ТС, вопрос будет ли работать на форуме не задают. Запускают тесты для проверки работоспособности, ставят при необходимости точки останова и отлаживают. Любую программу. На форуме никто не отладит
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 29.05.2013, 12:25   #4
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
1. Вот это: array [1..1024] of Byte, в отдельный тип данных вынесите.
2. Он у вас будет работать, только если значения от 0 до 9, а байт может быть до 255.
3. Массив индексируется с 1, а цикл с 0.
4. S := letra + S; - получим на выходе строку в обратном порядке.
1. А если просто Byte, так то преобразуется скачиваем по WinInet текст.
2. Как сделать правильно?(код)
3. Ок попробуем с 1.
4. Может тогда: S:=S + letra;
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 29.05.2013, 12:43   #5
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Короче попробовал такой код:
Код:
function TForm1.ByteToString(const Value: array of Byte): String;
var
i: integer;
letra: char;
s: string;
begin
Result:='';
for i:= 1 to sizeof(Value) do
begin
letra := Chr(Value[I]);
S:=AnsiString(Letra);
Result:= Result + S;
end;
Должно быть это:

А получил:

Что делать?
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск