Wątek przeniesiony 2017-10-30 11:09 z C# i .NET przez ŁF.

Podmiana wartosci

0

OTO MOJ KOD :

                Encoding enc = Encoding.GetEncoding("us-ascii",
                                          new EncoderExceptionFallback(),
                                          new DecoderExceptionFallback());
                nazwaPliku = textEditNazwaPliku.Text;
                sciezkaDoPliku = textEditSciezka.Text;
                adresHex = textEditAdresHEX.Text;
                zmianaZ = textEditZmianaZ.Text;
                zmianaNa = textEditZmianaNa.Text;
                wpis = memoEditWpisy.Text;

                
                BinaryWriter writer = new BinaryWriter(File.Open(sciezkaDoPliku, FileMode.Open));
                
                
                long adresH = long.Parse(adresHex);
                byte zmianaByte = Convert.ToByte(zmianaNa);

                //byte[] zmianaNaByte = Encoding.ASCII.GetBytes(zmianaNa);
                byte[] zmianaNaByte = new Byte[zmianaByte];
                
                try
                {
                    writer.BaseStream.Position = adresH;
                    writer.Write(zmianaNaByte);
                    
                }
                catch (Exception de)
                {
                    DXBox.pokazBlad("Bład podczas dodawanie wpisu do tabeli plików", de);
                }
                finally
                {
                    writer.Close();
                }

I mam pytanie , po pierwsze mam wpisywac w texteditZmiana na wartosc hex i ma po niej wyszukiwac danej wartosci . Moge wpisywac tylko liczby a chciałbym wpisywac wartosci takie jak np: FBD19 .A po drugie jak zrobic zeby w texteditZmianaNa wpisac wartosc 4 cyfrowa bo mam podmienic z 3402 na 3090 np...
Czy mogłby ktos pomoc ?

0

W tym momencie zmieniasz tylko jeden bajt. I generalnie to go zerujesz. Twój program chyba w ogóle nie pracuje tak, jak powinien.

Nie możesz podawać jednocześnie adresu w postaci liczby dziesiętnej i heksadecymalnej. Musisz dać jedną opcję do wyboru. Albo to, albo to. Może jakiś radioButton? No bo jeśli użytkownik wpisze adres: 10. To jest to 0x10h, czy 10 dziesiętne?

Przeanalizuj ten kod linijka po linijce. Najlepiej z użyciem debuggera, to zobaczysz, co tu jest nie tak.

Przyjrzyj się głównie tym linijkom:

byte zmianaByte = Convert.ToByte(zmianaNa);
byte[] zmianaNaByte = new Byte[zmianaByte];

Bo one są zupełnie bez sensu.

0

to co bys zaproponowal zamiast tego ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1