hpfileio.java

来自「一个简单的visio程序。」· Java 代码 · 共 2,123 行 · 第 1/5 页

JAVA
2,123
字号
                    }
                    else
                    {
                        for (j=i;j<k;j++)
                        {
                           if (Character.isDigit(buf[j]))
                               ch[j] = buf[j];
                           else
                              break;
                        }
                        i = j;

                    }
                 }
				 else if(i<k-1 && buf[i] == '$')
				 {
					 inch = new char[i];
					 for (j=0;j<i;j++)
						 inch[j] = ch[j];
					 numtype(inch, numberic, data_type);
					 data_type[0] = Variant.V_CURR;
					 return ;
				 }
                 inch = new char[i];
                 for (j=0;j<i;j++)
                     inch[j] = ch[j];
                 numtype(inch, numberic, data_type);
	             return ;
              }
              else
              {
                 if ( buf[1]=='.' && Character.isDigit(buf[2]) )
                 {
                     ch[1] = buf[1];
                     for (i=2;i<k;i++)
                     {
                        if(Character.isDigit(buf[i]))
                           ch[i] = buf[i];
                        else
                           break;
                     }
                     if (i<k-1 && (buf[i] == 'e' || buf[i] == 'E'))
                     {
                        ch[i] = buf[i];
                        i++;
                        if (buf[i] == '+' || buf[i] == '-')
                        {
                            ch[i] = buf[i];
                            for (j=i+1;j<k;j++)
                            {
                               if (Character.isDigit(buf[j]))
                                   ch[j] = buf[j];
                               else
                                  break;
                            }
                            i = j;
                        }
                        else
                        {
                            for (j=i;j<k;j++)
                            {
                               if (Character.isDigit(buf[j]))
                                   ch[j] = buf[j];
                               else
                                  break;
                            }
                            i = j;

                        }
                     }else if (i<k-1 && buf[i] == '$')
					 {
						 inch = new char[i];
						 for (j=0;j<i;j++)
							 inch[j] = ch[j];
						 numtype(inch, numberic, data_type);
						 data_type[0] = Variant.V_CURR;
    					 return ;
					 }
                     inch = new char[i];
                     for (j=0;j<i;j++)
                         inch[j] = ch[j];
                     numtype(inch, numberic, data_type);
    	             return ;
                 }
                 numberic[0] = 0;
                 data_type[0] = Variant.V_CURR;//currency
                 return ;
              }
           }
           else
           {
              if ( buf[0] == '.' )
              {
                 if (Character.isDigit(buf[1]) )
                 {
                     ch[0] = buf[0];
                     for (i=1;i<k;i++)
                     {
                        if(Character.isDigit(buf[i]))
                           ch[i] = buf[i];
                        else
                           break;
                     }
                     if (i<k-1 && (buf[i] == 'e' || buf[i] == 'E'))
                     {
                        ch[i] = buf[i];
                        i++;
                        if (buf[i] == '+' || buf[i] == '-')
                        {
                            ch[i] = buf[i];
                            for (j=i+1;j<k;j++)
                            {
                               if (Character.isDigit(buf[j]))
                                   ch[j] = buf[j];
                               else
                                  break;
                            }
                            i = j;
                        }
                        else
                        {
                            for (j=i;j<k;j++)
                            {
                               if (Character.isDigit(buf[j]))
                                   ch[j] = buf[j];
                               else
                                  break;
                            }
                            i = j;

                        }
                     }else if (i<k-1 && buf[i] == '$')
					 {
						 inch = new char[i];
						 for (j=0;j<i;j++)
							 inch[j] = ch[j];
						 numtype(inch, numberic, data_type);
						 data_type[0] = Variant.V_CUR;
    					 return ;
					 }
                     inch = new char[i];
                     for (j=0;j<i;j++)
                         inch[j] = ch[j];
                     numtype(inch, numberic, data_type);
        	         return ;
                 }
                 else
                 {
                    numberic[0] = 0;
                    data_type[0] = Variant.V_CUR; //currency;
                    return;
                 }
              }
              else
              {
                 if (Character.isDigit(buf[0]))
                 {
                    ch[0] = buf[0];
                    for (i=1;i<k;i++)
                    {
                       if (Character.isDigit(buf[i]))
                          ch[i] = buf[i];
                       else
                          break;
                    }
                    if (i<k-1)
                    {
                        if (buf[i] == '.')
                        {
                            ch[i] = buf[i];
                            for (j=i+1;j<k;j++)
                            {
                                if (Character.isDigit(buf[j]))
                                    ch[j] = buf[j];
                                else
                                    break;
                            }
							i = j;
                            if (i<k-1 && (buf[i] == 'e' || buf[i] == 'E'))
                            {
                                ch[i] = buf[i];
                                i++;
                                if (buf[i] == '+' || buf[i] == '-')
                                {
                                    ch[i] = buf[i];
                                    for (j=i+1;j<k;j++)
                                    {
                                       if (Character.isDigit(buf[j]))
                                           ch[j] = buf[j];
                                       else
                                          break;
                                    }
                                    i = j;
                                }
                                else
                                {
                                    for (j=i;j<k;j++)
                                    {
                                       if (Character.isDigit(buf[j]))
                                           ch[j] = buf[j];
                                       else
                                          break;
                                    }
                                    i = j;

                                }
                            }else if (i<k-1 && buf[i] == '$')
							{
								 inch = new char[i];
								 for (j=0;j<i;j++)
									 inch[j] = ch[j];
								 numtype(inch, numberic, data_type);
								 data_type[0] = Variant.V_CUR;
    							 return ;
							}
                            inch = new char[i];
                            for (j=0;j<i;j++)
                                inch[j] = ch[j];
                            numtype(inch, numberic, data_type);
            	            return ;
                        }
                        else if (buf[i] == 'e' || buf[i] == 'E')
                        {
                            ch[i] = buf[i];
                            i++;
                            if (buf[i] == '+' || buf[i] == '-')
                            {
                                ch[i] = buf[i];
                                for (j=i+1;j<k;j++)
                                {
                                   if (Character.isDigit(buf[j]))
                                       ch[j] = buf[j];
                                   else
                                      break;
                                }
                                i = j;
                            }
                            else
                            {
                                for (j=i;j<k;j++)
                                {
                                   if (Character.isDigit(buf[j]))
                                       ch[j] = buf[j];
                                   else
                                      break;
                                }
                                i = j;

                            }
                            inch = new char[i];
                            for (j=0;j<i;j++)
                                inch[j] = ch[j];
                            numtype(inch, numberic, data_type);
        	                return ;
                        }else if (buf[i] == '$')
						{
							 inch = new char[i];
							 for (j=0;j<i;j++)
								 inch[j] = ch[j];
							 numtype(inch, numberic, data_type);
							 data_type[0] = Variant.V_CUR;
    						 return ;
						}
                    }
					inch = new char[i];
					for (j=0;j<i;j++)
					    inch[j] = ch[j];
                    numtype(inch,numberic,data_type);
                    return;
                 }
                 else if (buf[0] == '&')
                 {
                    if (buf[1] == 'O')
                    {
                        if (Character.digit(buf[2],8) != -1)
                        {
                            ch[0] = buf[2];
                            j ++;
                            for (i=3;i<k;i++)
                            {
                                if (Character.digit(buf[i],8) == -1)
                                   break;
                                ch[j] = buf[i];
                                j ++;
                            }
                            inch = new char[j];
                            for (i=0;i<j;i++)
                                inch[i] = ch[i];
                            String parselng = new String(inch);
                            numberic[0] = Long.parseLong(parselng,8);
                            data_type[0] = Variant.V_LNG;
                            return;

                        }
                        else
                        {
                             numberic[0] = 0;
                             data_type[0] = Variant.V_INT;
                             return ;
                        }

                    }
                    else if (buf[1] == 'H')
                    {
                        if (Character.digit(buf[2],16) != -1)
                        {
                            ch[0] = buf[2];
                            j ++;
                            for (i=3;i<k;i++)
                            {
                                if (Character.digit(buf[i],16) == -1)
                                   break;
                                ch[j] = buf[i];
                                j ++;
                            }
                            inch = new char[j];
                            for (i=0;i<j;i++)
                                inch[i] = ch[i];
                            String parselng = new String(inch);
                            numberic[0] = Long.parseLong(parselng,16);
                            data_type[0] = Variant.V_LNG;
                            return;

                        }
                        else
                        {
                             numberic[0] = 0;
                             data_type[0] = Variant.V_INT;
                             return ;
                        }
                    }
                    else
                    {
                         numberic[0] = 0;
                         data_type[0] = Variant.V_INT;
                         return ;
                    }
                 }
                 else
                 {
                    data_type[0] = Variant.V_STR;
                    return;
                 }
              }

           }
        }
        else
        {
           if ( k == 1 )
           {
              if ( buf[0] == '+' || buf[0] == '-' || buf[0] == '.' )
              {
                 numberic[0] = 0;
                 data_type[0] = Variant.V_CUR;
                 return ;
              }
			  else if (Character.isDigit(buf[0]))
			  {
				 numberic[0] = Character.digit(buf[0],10);
				 data_type[0] = Variant.V_INT;
				 return;
			  }
              data_type[0] = Variant.V_STR;
              return;
           }

           else if ( (buf[0] == '+' || buf[0] == '-' || buf[0] == '.') && !Character.isDigit(buf[1]) )
           {
              numberic[0] = 0;
              data_type[0] = Variant.V_CUR;
              return ;
           }

           else if ( (buf[0] == '+' || buf[0] == '-') && Character.isDigit(buf[1]) )
           {
              numtype(buf, numberic, data_type);
	          return ;
           }
           else if ( (Character.isDigit(buf[0]) || buf[0] == '.') && Character.isDigit(buf[1]) )
           {
              numtype(buf, numberic, data_type);
 	          return ;
   	       }

        }
        data_type[0] = Variant.V_STR;


    }*/

  /**
   * Returns characters from an open sequential or binary file.
   *
   * Syntax :
   *
   *    Input(number, [#]filenumber).
   *
   * number     : Any valid numeric expression specifying the number of 
   *              characters to return.
   * filenumber : Any valid file number.
   *
   */
   public static Variant input(short number,short filenumber) throws HpException
   {
		if (number == 0)
			return new VString("");
    	int  n = 0,by=0;
    	char ch;
    	char[] s;
      char[] buf;
    	long pf = 0,length=0,pos=0;
      String ss = "";

		if (number < 0)
		   throw new HpException(5," Invalid procedure call");

    	checkIn(number,filenumber);

      pf = finfo.GetFilePointer();
		length = finfo.Length();

    

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?