Exemplo n.º 1
0
        private void KeyCode(Keys keys)
        {
            switch (keys)
            {
            case Keys.PageDown:
                Position = Convertir.DecimalToHexa(Convertir.HexaToDecimal(this._CurrentPosition) + (this._ColumnSize * this._TotalLine));
                break;

            case Keys.PageUp:
                if (Position != "0")
                {
                    if (Convertir.HexaToDecimal(this._CurrentPosition) > (this._ColumnSize * this._TotalLine))
                    {
                        Position = Convertir.DecimalToHexa(Convertir.HexaToDecimal(this._CurrentPosition) - (this._ColumnSize * this._TotalLine));
                    }
                    else
                    {
                        Position = "0";
                    }
                }
                break;

            case Keys.Home:
                Position = "0";
                break;

            case Keys.End:
                Position = Convertir.DecimalToHexa(this.sbValue.Maximum);
                break;
            }
        }
Exemplo n.º 2
0
 private void sbValue_Scroll(object sender, System.Windows.Forms.ScrollEventArgs e)
 {
     if (this._isLoaded)
     {
         this._CurrentPosition = Convertir.DecimalToHexa(sbValue.Value);
         LoadPosition(this._CurrentPosition);
     }
 }
Exemplo n.º 3
0
        private void HexaTextBox_Leave(object sender, System.EventArgs e)
        {
            //Verifie si le total est superieurs ou inferieux au limite du control
            long val = Convertir.HexaToDecimal(HexaBox.Text);

            if (val > this._maxValue)
            {
                HexaBox.Text = Convertir.DecimalToHexa(this._maxValue);
            }

            if (val < this._minValue)
            {
                HexaBox.Text = Convertir.DecimalToHexa(this._minValue);
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Decode l'entrée suivant les propriétés de l'objet
        /// </summary>
        public void Decode()
        {
            string DataBrut = ExtractData.AspireString(PositionHexa,
                                                       Convertir.DecimalToHexa(this._position + this._length - 1), this._file, true);

            string[] Data       = Convertir.StringHexa_LittleEndian(DataBrut, true).Trim().Split(new char[] { ' ' });
            string   DecodedDTE = "";
            string   Find       = "";

            for (int i = 0; i < Data.Length; i++)
            {
                Find = this._tbl.FindTBLMatch(Data[i], true);
                if (Find == "#")
                {
                    DecodedDTE += "<" + Data[i] + ">";
                }
                else
                {
                    DecodedDTE += Find;
                }
            }

            txtValue.Text = DecodedDTE.TrimEnd(' ');
        }
Exemplo n.º 5
0
 private void Control_MouseWheel(object sender, System.Windows.Forms.MouseEventArgs e)
 {
     if (this._isLoaded)
     {
         if (e.Delta > 0)
         {
             if (Position != "0")
             {
                 if (Convertir.HexaToDecimal(this._CurrentPosition) > this._ColumnSize)
                 {
                     Position = Convertir.DecimalToHexa(Convertir.HexaToDecimal(this._CurrentPosition) - this._ColumnSize);
                 }
                 else
                 {
                     Position = "0";
                 }
             }
         }
         else
         {
             Position = Convertir.DecimalToHexa(Convertir.HexaToDecimal(this._CurrentPosition) + this._ColumnSize);
         }
     }
 }
Exemplo n.º 6
0
 private void button2_Click(object sender, System.EventArgs e)
 {
     textBox1.Text = Convertir.DecimalToHexa(10);
 }
Exemplo n.º 7
0
        public static string AspireString(string FileName)
        {
            FileInfo info = new FileInfo(FileName);

            return(AspireString("0", Convertir.DecimalToHexa(info.Length), FileName));
        }
Exemplo n.º 8
0
        private void ExtractString(int MinTaille, long StartPos, long StopPos, short Performance, string FindString)
        {
            if (File.Exists(this._FileName))
            {
                if (File.Exists(tblCombo1.SelectedItem.Tag.ToString()))
                {
                    //Vide la liste de rechercher
                    lvFind.Items.Clear();

                    //Ouverture du fichier
                    FileInfo info = new FileInfo(this._FileName);
                    HexEdit.Load(ref this._FileName, (int)info.Length);

                    TBLStream tbl = new TBLStream(tblCombo1.SelectedItem.Tag.ToString());
                    tbl.Load();

                    int  ChunkSize = Performance * 10000;
                    long DataLen   = StopPos - StartPos;

                    if (DataLen > 0)
                    {
                        int i = (int)StartPos;
                        pb.Maximum = (int)DataLen;

                        string   buffer = "";
                        string[] bufferSplittedHexa;
                        string   dte    = "";
                        string   str    = "";
                        long     StrPos = 0;

                        //Commancement de la recherche des chaine
                        do
                        {
                            if (this._Cancel)
                            {
                                break;
                            }

                            buffer             = HexEdit.GetDataChunk(i);
                            bufferSplittedHexa = Convertir.StringHexa_LittleEndian(buffer, true).Trim().Split(new char[] { ' ' });
                            for (int j = 0; j < bufferSplittedHexa.Length; j++)
                            {
                                dte = tbl.FindTBLMatch(bufferSplittedHexa[j]);
                                if (dte != "#")
                                {
                                    str += dte;
                                }
                                else
                                {
                                    if (str.IndexOf(FindString, 0) != -1)
                                    {
                                        if (str.Length >= MinTaille)
                                        {
                                            ListViewItem item = new ListViewItem(Convertir.DecimalToHexa(StrPos));
                                            item.SubItems.Add(str);
                                            lvFind.Items.Add(item);
                                        }
                                    }
                                    str    = "";
                                    StrPos = i + j + 1;
                                }

                                if ((i + j) > DataLen)
                                {
                                    break;
                                }

                                if (j % 10000 == 0)
                                {
                                    pb.Value = i + j;
                                }
                            }
                            //Assignation
                            i += ChunkSize;
                        }while(i < DataLen);

                        //Reinitialise a 0
                        this.pb.Value         = 0;
                        this._Cancel          = false;
                        tbButtonFind.Enabled  = true;
                        tblButtonStop.Enabled = false;
                        panelParam.Enabled    = true;

                        if (lvFind.Items.Count == 0)
                        {
                            MessageBox.Show(this, this._String_NoItemFound,
                                            "Message",
                                            MessageBoxButtons.OK,
                                            MessageBoxIcon.Information);
                        }
                        else
                        {
                            MessageBox.Show(this, lvFind.Items.Count + " " + this._String_TotalItem,
                                            "Message",
                                            MessageBoxButtons.OK,
                                            MessageBoxIcon.Information);
                        }
                    }     // Datalen > 0
                }         // TBL
            }             //Filename
        }
Exemplo n.º 9
0
        private void LoadPosition(string Position)
        {
            try {
                //Preparation de la fonctions
                long StartPos = Convertir.HexaToDecimal(Position);
                long hauteur  = this.Font.Height;
                this._TotalLine = picAdresse.Height / hauteur; //Total de ligne a charger
                long   DataLenght = this._TotalLine * _ColumnSize;
                string EndPos     = Convertir.DecimalToHexa((StartPos + DataLenght) - 1);

                htbPosition.HexaValue = Position;
                dtbPosition.Valeur    = htbPosition.DecimalValue;
                sbValue.Value         = (int)Convertir.HexaToDecimal(Position);

                //Verifie que l'adresse de fin est bien au maximum de la fin
                if (Convertir.HexaToDecimal(EndPos) > this._FileLen)
                {
                    EndPos = Convertir.DecimalToHexa(this._FileLen);
                }

                //Extraction des données et preparation avant de les dessiners
                string   DataBrut = ExtractData.AspireString(Position, EndPos, this._FileName, true);
                string   DataView = ExtractData.AspireString(Position, EndPos, this._FileName, false);
                string[] Data     = Convertir.StringHexa_LittleEndian(DataBrut, true).Trim().Split(new char[] { ' ' });

                string[] Adresse = new string[this._TotalLine];
                if (!this._DecimalMode)
                {
                    //Creation des chaines de position en hexadecimale

                    long tempPos = StartPos;
                    Adresse[0] = String.Format("{0, 8:0}", Convertir.DecimalToHexa(tempPos));  //Premiere position
                    Adresse[0] = Adresse[0].Replace(' ', '0');
                    for (int i = 1; i < Adresse.Length; i++)
                    {
                        tempPos   += _ColumnSize;
                        Adresse[i] = String.Format("{0, 8:0}", Convertir.DecimalToHexa(tempPos));  //String.Format()
                        Adresse[i] = Adresse[i].Replace(' ', '0');
                    }
                }
                else
                {
                    //Creation des chaines de en decimale
                    long tempPos = StartPos;
                    Adresse[0] = String.Format("{0, 8:0}", tempPos);  //Premiere position
                    Adresse[0] = Adresse[0].Replace(' ', '0');
                    for (int i = 1; i < Adresse.Length; i++)
                    {
                        tempPos   += _ColumnSize;
                        Adresse[i] = String.Format("{0, 8:0}", tempPos);  //String.Format()
                        Adresse[i] = Adresse[i].Replace(' ', '0');
                    }
                }

                //Dessiner les position
                Graphics gfxAdresse = picAdresse.CreateGraphics();
                gfxAdresse.CompositingQuality = CompositingQuality.HighSpeed;
                gfxAdresse.Clear(Color.Gray);
                PointF ptAdr = new PointF(0, 0);
                for (int i = 0; i < Adresse.Length; i++)
                {
                    gfxAdresse.DrawString(Adresse[i], this.Font, Brushes.White, ptAdr, StringFormat.GenericDefault);
                    ptAdr.Y += this.Font.Height;
                }


                //Dessiner le Data
                Graphics gfxData = picData.CreateGraphics();
                gfxData.CompositingQuality = CompositingQuality.HighSpeed;
                gfxData.Clear(Color.White);
                PointF ptData = new PointF(0, 0);
                int    cnt    = 0;
                for (int i = 0; i < Adresse.Length; i++)
                {
                    for (int j = 0; j < _ColumnSize; j++)
                    {
                        if (cnt % 2 == 0)
                        {
                            gfxData.DrawString(Data[cnt] + " ", this.Font, Brushes.Black, ptData, StringFormat.GenericDefault);
                        }
                        else
                        {
                            gfxData.DrawString(Data[cnt] + " ", this.Font, Brushes.Blue, ptData, StringFormat.GenericDefault);
                        }

                        ptData.X += 20;
                        cnt++;
                    }

                    ptData.X  = 0;
                    ptData.Y += this.Font.Height;
                }

                //Affiche le Data en fonction de la TBL ou non
                if (this.UseTBL)
                {
                    if (this._ShowColor)
                    {
                        DrawTBLDataColorDTE(Data, Adresse.Length);
                    }
                    else
                    {
                        DrawTBLData(Data, Adresse.Length);
                    }
                }
                else
                {
                    DrawSimpleData(DataView, Adresse.Length);
                }
            }
            catch { }
        }