Пример #1
0
    public static string GetItem(string lin, string ch, int pos, string brackets)
    {
        if (lin.Length == 0 || ch.Length == 0)
        {
            return("");
        }
        string bracketarray = "";
        string part         = "";
        int    foundnum     = 0;

        for (int i = 1; i <= lin.Length; i++)
        {
            string c = VbX.Mid(lin, i, 1);
            if (c == ch & string.IsNullOrEmpty(bracketarray))
            {
                if (foundnum == pos)
                {
                    return(part);
                }
                else
                {
                    part = ""; foundnum = foundnum + 1;
                }
            }
            else
            {
                part = part + c;
            }

            //    MsgBox(c)
            if (c == VbX.Chr(34) & VbX.InStr(brackets, VbX.Chr(34)) > 0)
            {
                if (VbX.Right(bracketarray, 1) == VbX.Chr(34) & !string.IsNullOrEmpty(bracketarray))
                {
                    bracketarray = VbX.Left(bracketarray, VbX.Len(bracketarray) - 1);
                }
                else
                {
                    bracketarray = bracketarray + VbX.Chr(34);
                }
                //part = part + c
            }
            else if ((c == "(" | c == ")") & VbX.InStr(brackets, "(") > 0)
            {
                if (VbX.Right(bracketarray, 1) == "(" & c == ")" & !string.IsNullOrEmpty(bracketarray))
                {
                    bracketarray = VbX.Left(bracketarray, VbX.Len(bracketarray) - 1);
                }
                else
                {
                    bracketarray = bracketarray + "(";
                }
                //part = part + c
            }
            else if ((c == "{" | c == "}") & VbX.InStr(brackets, "{") > 0)
            {
                if (VbX.Right(bracketarray, 1) == "{" & c == "}" & !string.IsNullOrEmpty(bracketarray))
                {
                    bracketarray = VbX.Left(bracketarray, VbX.Len(bracketarray) - 1);
                }
                else
                {
                    bracketarray = bracketarray + "{";
                }
                //part = part + c
            }
        }
        if (foundnum == pos)
        {
            return(part);
        }
        if (pos == -1)
        {
            return(foundnum.ToString());
        }
        return("");
    }
Пример #2
0
        void dobytebatch(string bitdata)//, StringBuilder Chunk)
        {
            bitdata = bitdata.Trim();
            if (bitdata.Length == 0)
            {
                return;
            }
            int lng     = bitdata.Length / 8;
            int partnum = 0;

            for (int i = 0; i < bitdata.Length; i += 8)
            {
                //;
                string part = VbX.Mid(bitdata + "    ", i + 1, 8).Trim();

                if (part.Length == 8)
                {
                    //if (i > 0)
                    //{
                    //Chunk.Append(",");

                    //}
                    //else
                    //{
                    //Chunk.Append(nl + "defb ");

                    //}
                    // if (partnum == 14) partnum = 0;
                    if (partnum == 0)
                    {
                        int pp = (lng - (i / 8));
                        if (pp > 15)
                        {
                            pp = 15;
                        }
                        //Chunk.Append("&" + (16 * pp).ToString("x") + ",");
                        addbytetodata((16 * pp));
                        if (pp == 15)
                        {
                            pp  = (lng - (i / 8));
                            pp -= 15;
                            while (pp >= 0)
                            {
                                int pp2 = pp;
                                if (pp2 > 255)
                                {
                                    pp2 = 255;
                                }
                                //Chunk.Append("&" + (pp2).ToString("x") + ",");
                                addbytetodata(pp2);
                                pp -= 255;
                            }
                        }
                    }
                    partnum = partnum + 1;

                    addbytetodata(VbX.BinToHex(unnibble(part)));
                    // VbX.MsgBox("&" + globals.BinToHex(part));
                    // donibblebatch(part, 1, Chunk);
                }
                else
                {
                    //Chunk.Append(nl);
                    donibblebatch(part, 1);
                }
            }
        }