MD5 hash value from a file

Hello Oracle Community,
version 11.1
well a lof of questions from me today. Is it possible to generate a MD5 value from a file with PL/SQL and if so how can I do it ?
Ilja

Hi Ilja,
I never work with files from Oracle, but maybe you could try combining these:
UTL_FILE.GET_RAW (
   fid  IN  utl_file.file_type,
   r    OUT NOCOPY RAW,
   len  IN  PLS_INTEGER DEFAULT NULL);
DBMS_OBFUSCATION_TOOLKIT.MD5(
   input         IN  RAW)
  RETURN raw_checksum;Regards
Peter

Similar Messages

  • The selected signed file could not be authenticated. The file might have been tampered with or an error might have occured during download. Please verify the MD5 hash value against the Cisco Systems web site

    I am trying to load any 9.0.3 firmware on my UCM 5.0.4.2000-1 server. Every newer firmware I load throws the following error. I have verified the MD5 is correct and also downloaded the file several times with the same result. I can load the same firmware file on another UCM server and it loads fine. Any ideas?
    Thanks in advance!
    Error Message:
    The selected signed file could not be authenticated. The file might have been  tampered with or an error might have occured during download. Please verify the  MD5 hash value against the Cisco Systems web site:  9b:b6:31:09:18:15:e7:c0:97:9f:e6:fe:9a:19:94:99
    Firmware File: cmterm-7970_7971-sccp.9-0-3.cop.sgn
    UCM version: 5.0.4.2000-1

    Thanks for your reply. We have a lab environment where I maintain  UCM 5.0, 5.1, 6.0, 6.1, 7.0, 7.1 and 8.0 servers each running the latest released firmware for our QA testing team. I have downloaded and installed the latest device packages but find that if I try to install any firmware newer then 8.3.1 on either 5.0.4 or 6.0 i start getting MD5 hash authentication errors. It looks like 9.0.3 firmware should work on UCM 5.0 and 6.0 so I am lost as to why I can't seem to update any firmware for any model phone if it is newer then version 8.3.1 on either 5.0 or 6.0. while 5.1 and 6.1 work without issues. Maybe it is just a bug. I mostly wanted to see if anyone else has experienced this or if it is just me.

  • Generating MD5 hash value for any specific flat file

    Hi experts,
    I am developing a program that will generate flat files and also I should generate the MD5 Hash value for each and every flat files. My question is how can I generate the MD5 hash value for the generated .txt files.
    Thanks in advance
    Shabir

    You can use functions
    MD5_CALCULATE_HASH_FOR_CHAR for text file
    MD5_CALCULATE_HASH_FOR_RAW for binary

  • DBMS_CRYPTO MD5 hash value does not match 3rd party MD5 free tool

    Hello,
    I am using Oracle Version: 11.2.4.
    I have a problem where the MD5 value from DBMS_CRYPTO does not match the hash value from 3rd party MD5 free tool (MD5 Checksum Calculator 0.0.5.58 or WinMD5Free v1.20) and also the MD5 hash value calculated by an ingestion tool where I am transferring files to. The MD5 hash value that the ingestion tool calculates is the same as the 3rd party MD5 free tools I have. This occurs only on some of the XML files that I generate using XSQL(xmlserialize, xmlagg, xmlelement, etc.) and DBMS_XSLPROCESSOR on a Linux OS. The XML files are transferred from the Unix OS to my Windows 7 OS via filezilla.
    I found a thread on this forum that also had a similar issue so I copy/paste the java functions. They are listed below(both are the same expect for the character set):
    create or replace java source named "MD5_UTF_8" as
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    import java.sql.Clob;
    import java.sql.Blob;
    public class MD5_UTF_8 {
    private static final byte [] hexDigit = {
    '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
    /** Converts a byte array to a hex string
    * Returns an empty string if the byte array is null
    public static final String toHexString(byte [] bytes) {
    if (bytes == null) return new String("");
    StringBuffer buf = new StringBuffer(bytes.length * 2);
    for (int i = 0; i < bytes.length; i++) {
    buf.append((char) hexDigit[((bytes >>> 4) & 0x0F)]);
    buf.append((char) hexDigit[(bytes & 0x0F)]);
    return buf.toString();
    // Convert Hex String to Byte Array
    public static final byte[] byteArrayFromHexString(String str) {
    byte[] bytes = new byte[str.length() / 2];
    for (int i = 0; i < bytes.length; i++)
    bytes = (byte) Integer.parseInt(str.substring(2 * i, 2 * i + 2), 16);
    return bytes;
    public static String getMD5HashFromClob(Clob inhalt) throws Exception{
    MessageDigest algorithm;
    StringBuffer hexString;
    String s = null;
    String salida = null;
    int i;
    byte[] digest;
    String tepFordigest = inhalt.getSubString(1L, (int)inhalt.length());
    try {
    algorithm = MessageDigest.getInstance("MD5_UTF_8");
    algorithm.reset();
    algorithm.update(tepFordigest.getBytes("UTF-8"));
    digest = algorithm.digest();
    s = toHexString(digest);
    } catch (java.security.NoSuchAlgorithmException nsae) {
    s = "No es posible cifrar MD5";
    return s;
    sho err
    alter java source "MD5_UTF_8" compile
    sho err
    CREATE OR REPLACE FUNCTION get_md5_UTF_8_CLOB(inhalt CLOB) RETURN VARCHAR2 DETERMINISTIC
    AS LANGUAGE JAVA
    name 'MD5_UTF_8.getMD5HashFromClob(java.sql.Clob) return java.lang.String';
    create or replace java source named "MD5" as
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    import java.sql.Clob;
    import java.sql.Blob;
    public class MD5 {
    private static final byte [] hexDigit = {
    '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
    /** Converts a byte array to a hex string
    * Returns an empty string if the byte array is null
    public static final String toHexString(byte [] bytes) {
    if (bytes == null) return new String("");
    StringBuffer buf = new StringBuffer(bytes.length * 2);
    for (int i = 0; i < bytes.length; i++) {
    buf.append((char) hexDigit[((bytes >>> 4) & 0x0F)]);
    buf.append((char) hexDigit[(bytes & 0x0F)]);
    return buf.toString();
    // Convert Hex String to Byte Array
    public static final byte[] byteArrayFromHexString(String str) {
    byte[] bytes = new byte[str.length() / 2];
    for (int i = 0; i < bytes.length; i++)
    bytes = (byte) Integer.parseInt(str.substring(2 * i, 2 * i + 2), 16);
    return bytes;
    public static String getMD5HashFromClob(Clob inhalt) throws Exception{
    MessageDigest algorithm;
    StringBuffer hexString;
    String s = null;
    String salida = null;
    int i;
    byte[] digest;
    String tepFordigest = inhalt.getSubString(1L, (int)inhalt.length());
    try {
    algorithm = MessageDigest.getInstance("MD5");
    algorithm.reset();
    algorithm.update(tepFordigest.getBytes());
    digest = algorithm.digest();
    s = toHexString(digest);
    } catch (java.security.NoSuchAlgorithmException nsae) {
    s = "No es posible cifrar MD5";
    return s;
    sho err
    alter java source "MD5" compile
    sho err
    CREATE OR REPLACE FUNCTION get_md5_CLOB(inhalt CLOB) RETURN VARCHAR2 DETERMINISTIC
    AS LANGUAGE JAVA
    name 'MD5.getMD5HashFromClob(java.sql.Clob) return java.lang.String';
    I created the above java functions and added the calls to them in my package to see what hash values they would produce but I am getting "ORA-29532: Java call terminated by uncaught Java exception: java.nio.BufferOverflowException " the XML is about 60mb.
    package code sniippets:
    declare
    l_hash raw(2000);
    l_checksum_md5 varchar2(2000);
    l_checksum_md5_utf_8 varchar2(2000);
    Begin
    t_checksum := lower(RAWTOHEX(dbms_crypto.hash(src=>l_clob,typ=>dbms_crypto.hash_md5)));
    l_hash := get_md5_CLOB (l_clob);
    l_checksum_md5 := lower(rawtohex(l_hash));
    l_hash := get_md5_UTF_8_CLOB (l_clob);
    l_checksum_md5_UTF_8 := lower(rawtohex(l_hash));Please help,
    Thank You in advance
    Don
    Edited by: 972551 on Nov 21, 2012 12:18 PM
    Edited by: sabre150 on Nov 21, 2012 11:06 PM
    Moderator action : added [code ] tags to format properly. In future please add them yourself.

    >
    I have a problem where the MD5 value from DBMS_CRYPTO does not match the hash value from 3rd party MD5 free tool (MD5 Checksum Calculator 0.0.5.58 or WinMD5Free v1.20) and also the MD5 hash value calculated by an ingestion tool where I am transferring files to. The MD5 hash value that the ingestion tool calculates is the same as the 3rd party MD5 free tools I have.
    I found a thread on this forum that also had a similar issue so I copy/paste the java functions.
    >
    And in that thread (Re: MD5 HASH computed from DBMS_CRYPTO does not match .NET MD5 I provided the reason why DBMS_CRYPTO may not match hashes produced by other methodologies.
    I have no idea why you copied and posted all of that Java code the other poster and I provided since code has NOTHING to do with the problem you say you are having. Thte other poster's question was how to write Java code that would produce the same result as DBMS_CRYPTO.
    You said your problem was understanding why DBMS_CRYPTO 'does not match the hash value from 3rd party MD5 free tool ...'. and I answered that in the other forum.
    >
    The Crypto package always converts everything to AL32UTF8 before hashing so if the .NET character set is different the hash will likely be different.
    See DBMS_CRYPTO in the PL/SQL Packages and Types doc
    http://docs.oracle.com/cd/B28359_01/appdev.111/b28419/d_crypto.htm
    If you look at the spec header for the DBMS_CRYPTO package it shows this note:
    -- Prior to encryption, hashing or keyed hashing, CLOB datatype is
    -- converted to AL32UTF8. This allows cryptographic data to be
    -- transferred and understood between databases with different
    -- character sets, across character set changes and between
    -- separate processes (for example, Java programs).
    -- If your 3rd party MD5 free tool (MD5 Checksum Calculator 0.0.5.58 or WinMD5Free v1.20) do not use the AL32UTF8 character set then the hashes will likely be different. You can't modify DBMS_CRYPTO so if the hashes need to match you need to use 3rd party tools that either use the correct character set or can be configured to use the correct character set.
    The problem in the other thread was how to WRITE Java code that uses the correct character set and I showed that OP how to do that.
    So unless you are writing your own Java code all of that code you copied and pasted is useless for your use case.

  • I am facing problem while reading values from properties file ...i am getting null pointer exception earlier i was using jdeveloper10g now i am using 11g

    i am facing problem while reading values from properties file ...i am getting null pointer exception earlier i was using jdeveloper10g now i am using 11g

    hi TimoHahn,
    i am getting following exception in JDeveloper(11g release 2) Studio Edition Version 11.1.2.4.0 but it works perfectly fine in JDeveloper 10.1.2.1.0
    Root cause of ServletException.
    java.lang.NullPointerException
    at java.util.PropertyResourceBundle.handleGetObject(PropertyResourceBundle.java:136)
    at java.util.ResourceBundle.getObject(ResourceBundle.java:368)
    at java.util.ResourceBundle.getString(ResourceBundle.java:334)
    at org.rbi.cefa.master.actionclass.UserAction.execute(UserAction.java:163)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
    at java.security.AccessController.doPrivileged(Native Method)
    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
    at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
    at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
    at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)

  • How to retrieve value from xml file

    hi all,
    can somebody pls tell me how to retrieve value from xml file using SAXParser.
    I want to retrieve value of only one tag and have to perform some validation with that value.
    it's urgent .
    pls help me out
    thnx in adv.
    ritu

    hi shanu,
    the pbm is solved, now i m able to access XXX no. in action class & i m able to validate it. The only thing which i want to know is it ok to declare static ArrayList as i have done in this code. i mean will it affect the performance or functionality of the system.
    pls have a look at the following code snippet.
    public class XMLValidator {
    static ArrayList strXXX = new ArrayList();
    public void validate(){
    factory.setValidating(true);
    parser = factory.newSAXParser();
    //all factory code is here only
    parser.parse(xmlURI, new XMLErrorHandler());     
    public void setXXX(String pstrXXX){          
    strUpn.add(pstrXXX);
    public ArrayList getXXX(){
    return strXXX;
    class XMLErrorHandler extends DefaultHandler {
    String tagName = "";
    String tagValue = "";
    String applicationRefNo = "";
    String XXXValue ="";
    String XXXNo = "";          
    XMLValidator objXmlValidator = new XMLValidator();
    public void startElement(String uri, String name, String qName, Attributes atts) {
    tagName = qName;
    public void characters(char ch[], int start, int length) {
    if ("Reference".equals(tagName)) {
    tagValue = new String(ch, start, length).trim();
    if (tagValue.length() > 0) {
    RefNo = new String(ch, start, length);
    if ("XXX".equals(tagName)) {
    XXXValue = new String(ch, start, length).trim();
    if (XXXValue.length() > 0) {
    XXXNo = new String(ch, start, length);
    public void endElement(String uri, String localName, String qName) throws SAXException {                    
    if(qName.equalsIgnoreCase("XXX")) {     
    objXmlValidator.setXXX(XXXNo);
    thnx & Regards,
    ritu

  • Passing Value from one File to Another !!!

    Hi Friends,
    I have an issue, I have two different Swing programs (two seperate java files). I want to transfer value from one file to the another. Like we do in Servlets or JSP, we use sessions or Hiddenfields. The same way I want to retriev value in a new file from a previous one.
    Hope that all u champs out there have the answer to my query.
    Thanks,
    [email protected]

    This is a B2B comms question...
    A quick and dirty method is to use Socket/ServerSocket and use a basic protocol to do the transfer, if you are feeling heroic then use XML as the message format...
    A lot depends on whether your applications are running on separate boxes, i.e. do you need to communicate across a network...
    If not, if they are always going to be on the same "box" then you could just use well-known places for files...not portable but effective...

  • Passing The Value from csv file to a WebApplication

    Hi to all,
    i have a csv file. my requirement is to transfer data from csv file to a specified website(i have no control over website.). How can i solve this problem?
    I am giving you an Example for better understanding:
    I have a csv file named "abc.csv" in which my login id and password of my mail is written.
    abc.csv:----
    Userid:Admin
    Password:Admin
    Now i want a program which will take these values and pass these values to my mail server so that i can login without entering manualy.
    How can i solve this Problem
    Thanks

    hi
    what You are telling is correct when we our form is in the same application. but i said that i have only csv file and my program to read that file and now with those values from csv fil ei have to lo in a diffrent site over which i don,t have any control. means i can not know the name of action class of that login page.

  • Reading Design values from readback file

    Hi All,
    I am trying to understand the process of reading back design signal values from readback file.
    I have both the .ll file and the readback.bin file
    To get the readback file, I executed the below command:
    % readback_hw_device [current_hw_device] -readback_file <filename.rbd> -bin_file <filename.bin>
    Now, I want to know the command or process to read the design signal values from this .bin file? Is there any command provided by Xilinx or anything else that I can do to read the signal values?
    Rgds
    Sapan
     

    
    Hi Syed,
    Thanks for the reply. It was actually my own started thread. I had few questions unanswered from that post:
    Question:
    The procedure for readback that I am following here is based on the ug908-vivado programming and debugging.  
    I first uploaded the image on FPGA and then I executed the following commands in Vivado Hardware Manager
    % create_hw_bitstream -hw_device [current_hw_device] -mask fpga.msk fpga.bit
    % verify_hw_devices [current_hw_device]   #### For readback verify
    readback_hw_device [current_hw_device] -readback_file <filename.rbd> -bin_file <filename.bin> #####for readback capture
    This looks a little different from the one suggested in your document. Can you please confirm if my steps are correct?
    Using the above procedure, I did not have to explicitly send readback commands to the FPGA using JTAG as mentioned in doc:
    http://www.xilinx.com/support/documentation/sw_manuals/xilinx2015_1/ug908-vivado-programming-debugging.pdf
    However the other doc http://www.xilinx.com/support/documentation/application_notes/xapp1230-configuration-readback-capture.pdf mentions sending commands to the device in order to be able to do a readback.
    So I am a little confused which one is correct?
    Also which document will give the words per frame information for  FPGA XC7VX485TFFG1761?
    Rgds
    Sapan
     

  • MD5 implementation gives different hash values from java1.2 to java 1.3

    Hi,
    I have MD5 implementation using Java api. When i run the program using Java 1.2, I get one version of hash value. When i run the same program using Java 1.3/1.4 I get a different version of hash value.
    the hash value generated by java1.2 authecticates correctly with server but the one generated by 1.3/1.4 gives me authetication failure with the server.
    I serious doubt some encoding issue with md5 implementation from java 1.2 to java 1.3/1.4. I would like to know what is the root cause for getting a different hash with java 1.3/1.4
    Thanks
    sunil

    Here is the code, I am converting the string to bytes and then passing it to md.
    public static String getMD(String strInput) {
    /*---- Local Variable Declares ----*/
    String rStr = new String();
    try {
    MessageDigest md = MessageDigest.getInstance("MD5");
    md.update(strInput.getBytes("UTF-8"));
    byte[] challengeResponse = md.digest();
    System.out.println("Len of BYTE ary in JAVA:" + challengeResponse.length);
    rStr = new String(challengeResponse);
    } catch(Exception e) {
    System.out.println("\n\nException while calling getMD\n\n");
    e.printStackTrace();
    } /* end of try catch block */
    return rStr;
    When I run the code using java 1.2, I got the following is octal dump output
    "0000000 037677 135543 076565 063432 136210 040616 004766 177265"
    When I run the code using java 1.3/1.4, I go the following octal dump outpu
    "0000000 037477 037543 076565 063432 037477 040477 004477 037477"

  • Assigning Values from a file to an Array

    hey everyone I am working on a program that inputs values from a text file into an array i got the first array to work but the second array does not work. Please if you have a moment lend a hand. Here is my code. the program compiles fine but will not run right with the second array in it. The second array is called "B"
    import java.util.*;
    import java.io.*;
    import javax.swing.*;
    class algorithmAssignment1{
         public static void main (String[] args)throws IOException{
         int mark, counter, arrayAsize, mark2;
         counter=0;
         arrayAsize=100;
         int [] A= new int[arrayAsize];
         int [] B= new int[arrayAsize];
        String fileName = "arraynumbersa.txt";
        String value,value2;
        BufferedReader input;
        input = new BufferedReader (new FileReader (fileName));
        value = input.readLine ();
       while (value != null){
           mark = Integer.parseInt (value);
           A[counter]=mark;
           counter=counter+1;
           value = input.readLine ();
      /*  String fileName2 = "arraynumbersb.txt";
        BufferedReader input2;
        input2 = new BufferedReader (new FileReader (fileName2));
        value2 = input2.readLine ();     
         while (value2 != null){
           mark2 = Integer.parseInt (value2);
           B[counter]=mark2;
           counter=counter+1;
           value2 = input2.readLine ();
         bubbleSort(A,A.length);
         bubbleSort(B,B.length);
         System.out.println("Here is list A");
         for (int i = 0; i < A.length; i++){
             System.out.println( A[i] );
        System.out.println();
        System.out.println("Here is list B");
        for (int i=0;i<B.length;i++){
             System.out.println(B);
    /*change
    for (int i=0;i<A.length;i++){
         for (int j=0;j<B.length;j++){
              if (A[i]==B[j]){
                   System.out.println("Numbers that are in list A and B are "+ B[j]);
    static void bubbleSort(int numbers[], int array_size){
         int i, j, temp;
         for (i = (array_size - 1); i >= 0; i--)
         for (j = 1; j <= i; j++)
         if (numbers[j-1] > numbers[j]){
         temp = numbers[j-1];
                             numbers[j-1] = numbers[j];
                             numbers[j] = temp;

    Ok new problem now. I have to get the duplicates to go into a new array in order to display the duplicates. I can't figure out why it just lists the one duplicate but not the others.(It lists the final duplicate)
    Here is my code:
    import java.util.*;
    import java.io.*;
    import javax.swing.*;
    class algorithmAssignment1{
         public static void main (String[] args)throws IOException{
         int mark, counter, arrayAsize, mark2,counter2;
         counter=0;
         arrayAsize=100;
         counter2=0;
         int [] A= new int[arrayAsize];
         int [] B= new int[arrayAsize];
         int [] C=new int [arrayAsize];
        String fileName = "arraynumbersa.txt";
        String value,value2;
        BufferedReader input;
        input = new BufferedReader (new FileReader (fileName));
        value = input.readLine ();
       while (value != null){
           mark = Integer.parseInt (value);
           A[counter]=mark;
           counter=counter+1;
           value = input.readLine ();
        String fileName2 = "arraynumbersb.txt";
        BufferedReader input2;
        input2 = new BufferedReader (new FileReader (fileName2));
        value2 = input2.readLine ();     
         while (value2 != null){
           mark2 = Integer.parseInt (value2);
           B[counter2]=mark2;
           counter2=counter2+1;
           value2 = input2.readLine ();
         bubbleSort(A,A.length);
         bubbleSort(B,B.length);
         System.out.println("Here is list A");
         for (int i = 0; i < A.length; i++){
             System.out.println( A[i] );
        System.out.println();
        System.out.println("Here is list B");
        for (int i=0;i<B.length;i++){
             System.out.println(B);
    for (int i=0;i<A.length;i++){
         for (int j=0;j<B.length;j++){
              if (A[i]==B[j]){
                   for (int k=0;k<C.length;k++){
                        C[k]=(B[j]);
                   System.out.println("Here"+B[j]);
    System.out.println("Here are A and B");
    for (int i=0;i<C.length;i++){
         System.out.println(C[i]);
    static void bubbleSort(int numbers[], int array_size){
         int i, j, temp;
         for (i = (array_size - 1); i >= 0; i--)
         for (j = 1; j <= i; j++)
         if (numbers[j-1] > numbers[j]){
         temp = numbers[j-1];
                             numbers[j-1] = numbers[j];
                             numbers[j] = temp;

  • Sample Applescript: scraping values from numbers files into a master file

    Hi, I have programming experience in c and other languages, but am new to applescript and so am learning a lot from this forum.
    My goal is to make a timesheet system for my Dad (for a bday present) where every time he helps a client, he fills out a newly created numbers file - and after a week or so, he can run a script that scrapes certain values from each numbers file and places it into a master numbers file. Then saving and closing the file.
    Vince, it sounds like you've written a script that does this feature of looping through all numbers files in a folder and putting select values from each numbers file into a master numbers file (after clearing the previous values of the master file).
    Specifically, I'm looking for a sample script that opens up a numbers file, clears its table, then fills this table by scraping one value from a particular cell in every numbers file in a folder.
    If anyone has a similar script they would be willing to post or email to me, for me to use as a foundation and to learn from, I would be very very very grateful. My email is forman.jq at gmail dot com.

    I guess that this script may be a good starting point.
    --[SCRIPT fromfolder_2spreadsheet1]
    The target spreadsheet must be open at front and must contain the sheet sheet_destination which much contain the table table_destination.
    Choose the folder supposed to store the source sopreadsheets.
    Yvan KOENIG (VALLAURIS, France)
    2010/08/18
    --=====
    (* Edit these height properties to fit your needs *)
    property destination : "destinationDoc.numbers"
    property sheet_destination : "destination"
    property table_destination : "insert here"
    property premierelignedestination : 2
    property colonne_destination : 2
    property ledossierhabituel : "Macintosh HD Maxtor:Users:yvan_koenig:Desktop:dossier habituel:"
    property ligne_source : 2
    property colonne_source : 2
    --=====
    on run
    my activateGUIscripting()
    Select the folder storing the spreadsheets from which we will extract values *)
    set dossier_source to choose folder with prompt "Choose folder storing the Numbers documents…" default location (ledossierhabituel as alias)
    Build a list of disk items available in the selected folder *)
    tell application "System Events"
    set les_elements to every disk item of folder (dossier_source as text) --whose (get type identifier) is in
    set les_tableurs to {}
    Extracts the list of the Numbers spreadsheets available in the selected folder *)
    repeat with refsurelement in les_elements
    if type identifier of refsurelement is in {"com.apple.iwork.numbers.numbers", "com.apple.iwork.numbers.sffnumbers"} then
    copy path of refsurelement to end of les_tableurs
    end if
    end repeat
    end tell -- System Events
    if les_tableurs is {} then
    No Numbers documents available so we stop the process. *)
    set rapport to "The folder “" & dossier_source & "” doesn’t contain Numbers documents !"
    else
    set rapport to {}
    end if
    Check that the target Numbers document is open at front
    and that it embed the defined sheet embedding the defined table. *)
    tell application "Numbers"
    activate
    set existants to name of documents
    if destination is not in existants then
    copy "The document " & destination & " is not open !" to end of rapport
    else
    tell document destination
    if sheet_destination is not in (name of sheets) then
    copy "the sheet " & sheet_destination & " is unavailable in the document " & destination & " !" to end of rapport
    else
    tell sheet sheet_destination
    if table_destination is not in (name of tables) then copy "The table " & table_destination & " is unavailable in the sheet " & sheet_destination & " of the document " & destination & " !" to end of rapport
    end tell -- sheetSource
    end if
    end tell --document destination
    end if
    If target document is not at front or if it doesn't match the defined requirements,
    we quit the process. *)
    if rapport is not {} then error my recolle(rapport, return)
    Clean the target table, minus row 1 supposed to be storing columns headers *)
    tell document destination to tell sheet sheet_destination to tell table table_destination
    set selection range to range ("A2 : " & name of last cell)
    end tell --document destination
    end tell -- Numbers
    my selectMenu("Numbers", 4, 9) (* Suppress *)
    set liste_valeurs to {}
    tell application "Numbers"
    repeat with un_tableur in les_tableurs
    Open the spreadsheets and extract from each of them the wanted value *)
    open un_tableur
    tell document 1 to tell sheet 1 to tell table 1
    set une_valeur to value of cell 2 of column 2
    end tell
    if une_valeur is 0.0 then
    copy "empty" to end of liste_valeurs
    else
    copy une_valeur as text to end of liste_valeurs
    end if
    close document 1
    end repeat
    Now, it's time to insert the values in the target table *)
    set ligne_destination to premierelignedestination
    tell document destination to tell sheet sheet_destination to tell table table_destination
    repeat with une_valeur in liste_valeurs
    if not (exists row ligne_destination) then add row below last row
    if une_valeur is not "empty" then
    set value of cell ligne_destination of column colonne_destination to une_valeur
    end if
    set ligne_destination to ligne_destination + 1
    end repeat
    end tell -- document destination
    save document destination
    end tell -- Numbers
    end run
    --=====
    on recolle(l, d)
    local oTIDs, t
    set oTIDs to AppleScript's text item delimiters
    set AppleScript's text item delimiters to d
    set t to l as text
    set AppleScript's text item delimiters to oTIDs
    return t
    end recolle
    --=====
    on activateGUIscripting()
    (* to be sure than GUI scripting will be active *)
    tell application "System Events"
    if not (UI elements enabled) then set (UI elements enabled) to true
    end tell
    end activateGUIscripting
    --=====
    my selectMenu("Pages",5, 12)
    ==== Uses GUIscripting ====
    on selectMenu(theApp, mt, mi)
    tell application theApp
    activate
    tell application "System Events" to tell process theApp to tell menu bar 1 to ¬
    tell menu bar item mt to tell menu 1 to click menu item mi
    end tell -- application theApp
    end selectMenu
    --=====
    --[/SCRIPT]
    I apologize, I'm too busy to write more explanations.
    Yvan KOENIG (VALLAURIS, France) mercredi 18 août 2010 21:38:04

  • How to get the values from xml file to java combo box

    Hi frens,
    I am new to java and xml programming,
    Now, i want to have a code of getting the tag values from the xml file
    into the swing combo box of java front end.
    How can we do that?
    any help of code or tutorial or an ebook is a great help for me.
    Thank you,
    Karthik.
    Edited by: Karthik84 on Aug 27, 2008 1:49 AM
    Edited by: Karthik84 on Aug 27, 2008 11:29 PM

    look at this link
    http://www.stylusstudio.com/docs/v2006/d_help30.html
    I read sometime back that castor has a tool to do
    conversion. You might have a look into casto as well.

  • Help with getting array values from a file

    Hey ppl. Im doing a programming assignment just now and im completely stumped. I know i can ask my tutor but that will take a week (he is never in) so i was wondering if any of you could help. The basic idea is that you have to store numbers read from a file into an array. The catch is that you are not given the size of the array, you have to discover this by counting the numbers in the file. It terminates when -1 is discovered. This 'count' then states the size of the array.
    I got this done ok and i thought I was on easy street after that. All i had to do was read the numbers into the array but alas its not working. The compiler gives it the ok, but when i run the program i get the following error
    Exception in thread "main" java.lang.nullPointerException
    at marks.main(marks.java:48)
    By the way line 48 is as follows
    numbers[index] = Integer.parseInt(infile.readLine().trim());
    and here is the evil program!!!!!
    //Paul Rodger ***MARKS*** 14/1/02
    //A program which takes numbers from a file and enters them into an array.
    //The stream of numbers is terminated when the number -1 is discovered
    import java.io.*;
    class marks
    static BufferedReader keyboard = new
    BufferedReader(new InputStreamReader(System.in));
    static PrintWriter screen = new PrintWriter(System.out, true);
    static public void main(String[] args) throws IOException{
    FileReader file = new FileReader("numbers.txt");
    BufferedReader infile = new BufferedReader(file);
    //local Data
    int COUNT;
    double x;
    char ans;
    COUNT=0; // initialising the counter
    //inputs values and calculates the sum
    x = Double.parseDouble(infile.readLine().trim());
    while (x>=0){
    COUNT++;
    x= Double.parseDouble(infile.readLine().trim());
    // display the count
    screen.println("the number of values entered was : " +COUNT );
    // stores numbers in the array
    int[] numbers = new int[COUNT];
    for(int index=0 ; index < COUNT; index++)
    numbers[index] = Integer.parseInt(infile.readLine().trim());
    infile.close();
    Any help is appreciated!

    What was suggested is this -
    prior to this line ...
    int[] numbers = new int[COUNT];insert these lines ...
    file = new FileReader("numbers.txt");
    infile = new BufferedReader(file);An alternative solution, one which reads the file only once, is to do it this way ...
    1. read the numbers and put them into a List (either ArrayList or Vector)
    2. instantiate the array based on the size of List (list.size())
    3. populate the array from the list

  • Reading values from properties file

    Hi All,
    I am in need of a help from you all.I have a login.jsp which gets username and password as user input and checks in the servlet that if it was admin and admin it will take to index.jsp and if it was other than admin and other users it should take to index1.jsp.For now i am using an if condition to check the values and to dispatch the request.I need to use a properties file for this and need to check by getting the values from the properties file.And also it should check for each entry in properties file and if it finds any matches it should take to the corresponding page.
    Please help me in achieving this.
    Thanks,
    laxmi

    Hi All,
    I am in need of a help from you all.I have a login.jsp which gets username and password as user input and checks in the servlet that if it was admin and admin it will take to index.jsp and if it was other than admin and other users it should take to index1.jsp.For now i am using an if condition to check the values and to dispatch the request.I need to use a properties file for this and need to check by getting the values from the properties file.And also it should check for each entry in properties file and if it finds any matches it should take to the corresponding page.
    Please help me in achieving this.
    Thanks,
    laxmi

Maybe you are looking for