Добро пожаловать на переполнение стека, земли, где мечты сбываются. Так как это ваш первый вопрос, я сделаю все возможное, чтобы ответить, но в будущем, старайтесь следовать принципам сообщества в основном показывают, что
- Вы пытались решить эту проблему самостоятельно,
- Опубликовать весь код что применимо к вашей проблеме, и
- Явное сказать, почему код вы отправили не делать то, что вы хотели бы это сделать
в качестве примечания, проверьте dotnetfiddle.net, если вы хотите сделать небольшие программы для быстрого тестирования. Pro совет: не использовать Excel для отладки C# программ;)
Ответ: Daily Double
ОК, я собираюсь сделать вывод о том, что ваш вопрос заключается в следующем. Довольно либеральное перефразирование я знаю, но я пытаюсь помочь вам здесь
[Как я могу читать 4 байта из файла в заданном файл смещения, XOR каждый из этих 4 байта с 0x149, а затем отобразить тот на экране?]
ОК, первое место для начала - получить FileStream
объект, который я думаю. More reading: what is using
?
using (var input = File.OpenRead(path))
{
// somehow seek to file offset
// read 4 bytes, and
// XOR each byte with 0x149
// store results in a List<byte> (or something)
}
// display result
Хорошо, искать файл, вам нужно input.Seek(0x1D, SeekOrigin.Begin);
(Предполагается, что 0x1D из ОП правильно).
Чтобы прочитать 4 байта, это сделать (см ReadByte()
документацию)
for (var i=0;i<4;i++){
var byteThatIsNotRemembered = input.ReadByte();
}
Теперь вам нужно XOR эти байты с
for (var i=0;i<4;i++){
var byteThatIsNotRemembered = input.ReadByte()^0x149;
}
Наконец, сохранить их к list
// need to instantiate list somewhere near top
var byteList = new List<byte>();
// ... other code that we've written
for (var i=0;i<4;i++){
var byteThatIsRememberedNow = input.ReadByte()^0x149;
// need to cast to byte because^operator creates ints
byteList.Add((byte) byteThatIsRememberedNow);
}
// you'll need to replace this with something for your text box...
// couldn't figure out from your question
for (var i=0;i<byteList.Length;i++){
Console.WriteLine(byteList[i]);
}
Все вместе сейчас ...
// need to instantiate list somewhere near top
var byteList = new List<byte>();
using (var input = File.OpenRead(path))
{
input.Seek(0x1D, SeekOrigin.Begin);
for (var i=0;i<4;i++){
var byteThatIsRememberedNow = input.ReadByte()^0x149;
byteList.Add((byte) byteThatIsRememberedNow);
}
}
// you'll need to replace this with something for your text box...
// couldn't figure out from your question
for (var i=0;i<byteList.Length;i++){
Console.WriteLine(byteList[i]);
}
Вот аналогичный dotnetfiddle, где я использую строку вместо файла для создания потока.
Сообщите мне, если это было полезно
Просто из любопытства. Что такое xoring? – AVK
Пожалуйста, разместите код, который вы пробовали. –
@AVKNaidu Он, вероятно, означает [^] (https://msdn.microsoft.com/en-us/library/zkacc7k1.aspx) –