Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Переписываю древний код на C#.
|
|||
|---|---|---|---|
|
#18+
maytonНе забывай также что разрядность char может быть больше чем byte. C++ Макрос getc() возвращает следующий за текущей позицией символ во входном потоке stream и дает приращение указателю положения в файле. Символ считывается как unsigned char, преобразованный к переменной целого типа. При достижении конца файла getc() возвращает EOF. Однако поскольку EOF имеет значение целого типа, при работе с двоичными файлами для контроля достижения конца файла необходимо использовать feof(). Если getc() обнаруживает ошибку, то также возвращается EOF. Следует помнить, что при работе с двоичными файлами для проверки ошибок в файле следует использовать ferror(). C# ReadByte(): считывает один байт и перемещает указатель на один байт ReadChar(): считывает значение char, то есть один символ, и перемещает указатель на столько байтов, сколько занимает символ в текущей кодировке Я использую у себя ReadByte(), мне скорее всего нужно использовать ReadChar()? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 09:10 |
|
||
|
Переписываю древний код на C#.
|
|||
|---|---|---|---|
|
#18+
vadipokЯ использую у себя ReadByte(), мне скорее всего нужно использовать ReadChar()? Нет. ReadByte() и перекодировка Encoding из 1251 или 866, смотря какая кодировка в твоем файле используется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 09:25 |
|
||
|
Переписываю древний код на C#.
|
|||
|---|---|---|---|
|
#18+
До того как мы кинемся портировать - нам надо ответить на вопрос - нужна ли нам бинарная совместимость со старыми файлами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 09:28 |
|
||
|
Переписываю древний код на C#.
|
|||
|---|---|---|---|
|
#18+
maytonДо того как мы кинемся портировать - нам надо ответить на вопрос - нужна ли нам бинарная совместимость со старыми файлами? Скорее всего да, но пока реализую только чтение файла. Запись возможно и не пригодиться. Сейчас там кодировка ANSI стоит. Как его корректно отображать на экране? Пока я вижу, что значения с тестовой С++ программой пока не совпадают. И все таки не ответили на вопрос как быть с public char[] shu; Делать как тут написано? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 09:45 |
|
||
|
Переписываю древний код на C#.
|
|||
|---|---|---|---|
|
#18+
vadipok[qwuot mayton]До того как мы кинемся портировать - нам надо ответить на вопрос - нужна ли нам бинарная совместимость со старыми файлами? Скорее всего да, но пока реализую только чтение файла. Запись возможно и не пригодиться. Сейчас там кодировка ANSI стоит. Как его корректно отображать на экране? Пока я вижу, что значения с тестовой С++ программой пока не совпадают. И все таки не ответили на вопрос как быть с public char[] shu; Делать как тут написано? Спасибо![/quot] О каком экране ты говоришь? Мне кажется ты смешал в кучу два понятия. Чтение и разбор файла - это одна логика. Там могут быть свои преференции. Свои кодировки. Публикация текста в окне cmd/powershell это другая задача никак с первой не связаная ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 10:00 |
|
||
|
Переписываю древний код на C#.
|
|||
|---|---|---|---|
|
#18+
maytonvadipok[qwuot mayton]До того как мы кинемся портировать - нам надо ответить на вопрос - нужна ли нам бинарная совместимость со старыми файлами? Скорее всего да, но пока реализую только чтение файла. Запись возможно и не пригодиться. Сейчас там кодировка ANSI стоит. Как его корректно отображать на экране? Пока я вижу, что значения с тестовой С++ программой пока не совпадают. И все таки не ответили на вопрос как быть с public char[] shu; Делать как тут написано? Спасибо! О каком экране ты говоришь? Мне кажется ты смешал в кучу два понятия. Чтение и разбор файла - это одна логика. Там могут быть свои преференции. Свои кодировки. Публикация текста в окне cmd/powershell это другая задача никак с первой не связаная[/quot] C# Код: c# 1. 2. 3. 4. 5. 6. 7. C++ Код: plaintext 1. 2. 3. 4. Отличаются результаты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 10:16 |
|
||
|
Переписываю древний код на C#.
|
|||
|---|---|---|---|
|
#18+
vadipokОтличаются результаты. Ожидаемо. Это 20715355 прочитал? У тебя код написан исходя из бинарной совместимости структуры в С и C#, но они разные. Чтобы были одинаковы надо использовать типы одинакового размера, т.е. char заменить на byte. А потом уже конвертировать в char при выводе. Хотя и это возможно не поможет, т.к. массивы в C# это ссылочный тип, т.е. внутри структуры может оказаться только ссылка на содержимое массива. Это мое предположение, не разбирался в этих деталях. ИМХО лучше эту тему в форуме по C# поднять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 10:36 |
|
||
|
Переписываю древний код на C#.
|
|||
|---|---|---|---|
|
#18+
vadipok> И все таки не ответили на вопрос как быть с public char[] shu; Телепатов нет. Откуда ты его взял ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 10:54 |
|
||
|
Переписываю древний код на C#.
|
|||
|---|---|---|---|
|
#18+
Siemarglvadipok> И все таки не ответили на вопрос как быть с public char[] shu; Телепатов нет. Откуда ты его взял ? Добавил, он был в С++ программе в struct. struct очень длинный, поэтому только частично его привел в первом сообщении. Посмотрите, там есть похожие объявления. Переписал на C# и начались ошибки, попробовал закоментарить именно до этого объявления и заработала. Таким образом локализовал ошибку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 11:01 |
|
||
|
Переписываю древний код на C#.
|
|||
|---|---|---|---|
|
#18+
vadipokSiemarglvadipok> И все таки не ответили на вопрос как быть с public char[] shu; Телепатов нет. Откуда ты его взял ? Добавил, он был в С++ программе в struct. struct очень длинный, поэтому только частично его привел в первом сообщении. Посмотрите, там есть похожие объявления. Переписал на C# и начались ошибки, попробовал закоментарить именно до этого объявления и заработала. Таким образом локализовал ошибку. Ты вообще структурировано думать в состоянии??? Ну чтобы хотя бы вопрос смочь задать. На тебе бубен, сам и пляши. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 11:09 |
|
||
|
Переписываю древний код на C#.
|
|||
|---|---|---|---|
|
#18+
vadipokон был в С++ программе в struct. Забудь об этой С++ программе, пиши с нуля программу, которая читает файлы определённой структуры. Она не должна (и не может) быть похожа на ту, которая их записывает. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 11:31 |
|
||
|
Переписываю древний код на C#.
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovvadipokон был в С++ программе в struct. Забудь об этой С++ программе, пиши с нуля программу, которая читает файлы определённой структуры. Она не должна (и не может) быть похожа на ту, которая их записывает. +1 Проще всего читать файл в массивы byte[] и поэлементно конвертировать в нужную структуру для числовых типов BitConverter для char[] - Encoding.GetString() Правда букав много будет, если элементов много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 14:28 |
|
||
|
Переписываю древний код на C#.
|
|||
|---|---|---|---|
|
#18+
Dima TDimitry Sibiryakovпропущено... Забудь об этой С++ программе, пиши с нуля программу, которая читает файлы определённой структуры. Она не должна (и не может) быть похожа на ту, которая их записывает. +1 Проще всего читать файл в массивы byte[] и поэлементно конвертировать в нужную структуру для числовых типов BitConverter для char[] - Encoding.GetString() Правда букав много будет, если элементов много. Сегодня шеф объяснил как все работает на С++. В файле данные хранятся в виде байтов. Он просто в выделенную память их считывает и получает корректные данные. Но ведь BitConverter берет массив байтов, а у меня только одна переменная байт. Как это будет работать? Код: c# 1. 2. 3. 4. 5. Вот так оба переменных имеют одинаковые значения 66. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 15:50 |
|
||
|
Переписываю древний код на C#.
|
|||
|---|---|---|---|
|
#18+
vadipokСегодня шеф объяснил как все работает на С++. В файле данные хранятся в виде байтов. Он просто в выделенную память их считывает и получает корректные данные. Если б ты еще это понял, то вопроса ниже не было бы. vadipokНо ведь BitConverter берет массив байтов, а у меня только одна переменная байт. Как это будет работать? Код: c# 1. 2. 3. 4. 5. Вот так оба переменных имеют одинаковые значения 66. для одного байта не надо ничего конвертировать Код: c# 1. 2. Конвертировать надо когда несколько байт представляют одно значение, например int это 4 байта. PS fileStream может сразу массив прочитать, а дальше выколупывай из массива, т.е. примерно так Код: c# 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 16:03 |
|
||
|
Переписываю древний код на C#.
|
|||
|---|---|---|---|
|
#18+
Не дописал малость Код: c# 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 16:05 |
|
||
|
Переписываю древний код на C#.
|
|||
|---|---|---|---|
|
#18+
Например это Код: plaintext 1. 2. 3. 4. не что иное как прочитать 4 байта и сохранить в переменную lf В С/С++ можно в int побайтно читать с помощью трюка с приведением к указателю char * в C# это будет так выглядеть Код: c# 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 16:15 |
|
||
|
Переписываю древний код на C#.
|
|||
|---|---|---|---|
|
#18+
Dima TНе дописал малость Код: c# 1. 2. 3. Сейчас в документации нашел, что количество которое я пытаюсь вытащить, это: 1.0.21 Количество short 66-67 Находиться на 66-й позиции при чтении с помощью команды getc. Но там перед ним еще куча переменных и float, long. Мне получается нужно со читать количество байтов для каждой переменной а потом это все сложить, и эта цифра будет искомой цифрой, которая стоит 66-й при чтении с помощью команды getc? Ну я попал!!! В начале говорили, что там все просто, ты быстро все сделаешь. ))))))))))))))))))))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 16:22 |
|
||
|
Переписываю древний код на C#.
|
|||
|---|---|---|---|
|
#18+
vadipokDima TНе дописал малость Код: c# 1. 2. 3. Сейчас в документации нашел, что количество которое я пытаюсь вытащить, это: 1.0.21 Количество short 66-67 Находиться на 66-й позиции при чтении с помощью команды getc. Но там перед ним еще куча переменных и float, long. Мне получается нужно со читать количество байтов для каждой переменной а потом это все сложить, и эта цифра будет искомой цифрой, которая стоит 66-й при чтении с помощью команды getc? Ну я попал!!! В начале говорили, что там все просто, ты быстро все сделаешь. ))))))))))))))))))))))) А зачем тебе считать если в документации уже написано short 66-67 ? Документацию перепроверять собрался? Ты на мои 3 строчки кода глянь, которые процитировал. Там цифра 66 даже есть. Если там тип short, т.е. 2 байта, то Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 16:37 |
|
||
|
Переписываю древний код на C#.
|
|||
|---|---|---|---|
|
#18+
vadipok, рано ты взялся за эту задачу. Тебе нужна сноровка. И понимание того как можно работать с байтами и символами и целыми числами и стоками в файлах. Похоже сейчас у тебя такого понимания нет. Задачу ты хотя и сделаешь - то не поймешь. Или даже не поймешь и не сделаешь. И вобщем-то я-бы тебе предложил ее на месяцок отставить. И возьми и поразбирайся с файловыми операциями и типами данных в отдельных топиках. Что такое byte, char, short, int, long, WORD, DWORD, QWORD, signed/unsigned, кодировки, big-last endian, что такое struct/union/bitfields в С++. Какие разрядности бывают. Как работают fopen,fseek,fread,fwrite,fclose и такое же зеркальное семейство функций в C#. Как работают битовые операции <<, >>, |, &, (xor), как выделить в целом числе бит как установить как сбросить как влияет знаковый бит, что такое float/double/extended, и BCD арифметика. Создавай отдельный топик и погнали. А мы по мере возможности будем каментить и помогать. Вобщем как-то так. Что скажете, коллеги? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 21:01 |
|
||
|
Переписываю древний код на C#.
|
|||
|---|---|---|---|
|
#18+
maytonЧто скажете, коллеги? Пусть делает сейчас. ИМХО за месяц бездействия умнее не станет, а если сделает с подсказками то может через месяц/год поймет как и почему сделал. PS Чистую теорию далеко не каждый осилит, через практику пройти гораздо легче, а итого примерно одинаково. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 21:37 |
|
||
|
Переписываю древний код на C#.
|
|||
|---|---|---|---|
|
#18+
vadipok....В начале говорили, что там все просто, ты быстро все сделаешь. ))))))))))))))))))))))) я говорил, что там работы на 10-15 минут. ошибся кстати, на полчаса. Просто нужна квалификация. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 22:11 |
|
||
|
Переписываю древний код на C#.
|
|||
|---|---|---|---|
|
#18+
maytonvadipok, рано ты взялся за эту задачу. Тебе нужна сноровка. И понимание того как можно работать с байтами и символами и целыми числами и стоками в файлах. Похоже сейчас у тебя такого понимания нет. Задачу ты хотя и сделаешь - то не поймешь. Или даже не поймешь и не сделаешь. И вобщем-то я-бы тебе предложил ее на месяцок отставить. И возьми и поразбирайся с файловыми операциями и типами данных в отдельных топиках. Что такое byte, char, short, int, long, WORD, DWORD, QWORD, signed/unsigned, кодировки, big-last endian, что такое struct/union/bitfields в С++. Какие разрядности бывают. Как работают fopen,fseek,fread,fwrite,fclose и такое же зеркальное семейство функций в C#. Как работают битовые операции <<, >>, |, &, (xor), как выделить в целом числе бит как установить как сбросить как влияет знаковый бит, что такое float/double/extended, и BCD арифметика. Создавай отдельный топик и погнали. А мы по мере возможности будем каментить и помогать. Вобщем как-то так. Что скажете, коллеги? Понял, спасибо большое. Если будут вопросы, то буду спрашивать. А куда я еще пойду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 12:42 |
|
||
|
|

start [/forum/search_topic.php?author=inbox129&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
163ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 605ms |
| total: | 888ms |

| 0 / 0 |
