Turning Specific Char Characters into Numerical Values

Hello Everyone,
I was wondering if it is possible to turn a 'Y' char character into a number 1 and turn a 'N' char character into a 0?
Thanks in advance,
-N.S.N.O.

Say for example i want to convert back to 'Y' and 'N'. Where 0 = 'N' and >0 = 'Y'. Would that be possible?
I have tried
case source
  when source>0 then 'Y'
  when 0 then 'N'
endand
decode(source, source>0, 'Y', 0, 'N')Thanks in advance,
-N.S.N.O.

Similar Messages

  • Function module to convert character value of month into numeric value?

    Hi Experts,
                     I need to convert a character value of a month in three alphabets to its numeric value.
    e.g. 'jun' should be converted into '06' and 'jan' into '01' using a function module.Can anybody please provide me a similar function module?
    TIA
    Abhishek

    try this code:
    DATA: text(20) TYPE c,
    date TYPE sy-datum.
    text = '06. Jul 06'.
    TRANSLATE text TO UPPER CASE.
    TRANSLATE text USING '. '.
    CONDENSE text NO-GAPS.
    CALL FUNCTION 'CONVERSION_EXIT_SDATE_INPUT'
    EXPORTING
    input = text
    IMPORTING
    output = date.
    WRITE date USING EDIT MASK '__.__.____'.
    Regards,
    Dara.

  • Entering Characters into Numeric Field

    Let's say I want to add two numbers with parameters num1 and num2. Now, I want to make sure the user does not enter characters or symbols. If they do I wan to throw an exception. Does anyone know how to do this?
    declare
    v_num1 number := p_num1;
    v_num2 number := p_num2;
    v_results number;
    begin
    if user enters an alphabetic field or symbol
    raise error
    else
    v_results := v_num1 + v_num2;
    ...

    No real application should be using SQL Plus as its user interface! And as I said in my first reply, it is no good assigning the values to the variables in the DECLARE section if you want to catch exceptions.
    Here is some fully working code:
    SET SERVEROUTPUT ON
    ACCEPT p_number1 PROMPT 'Enter a number: '
    ACCEPT p_number2 PROMPT 'Enter another number: '
    DECLARE
      v_number1 NUMBER;
      v_number2 NUMBER;
      v_results NUMBER;
    BEGIN
      v_number1 := '&p_number1.';
      v_number2 := '&p_number2.';
      v_results := v_number1 * v_number2;
      DBMS_OUTPUT.PUT_LINE('Result='||v_results);
    EXCEPTION
      WHEN value_error THEN
        DBMS_OUTPUT.PUT_LINE('Invalid entry. ');
    END;
    /

  • How to convert character into numeric

    Pls suggest me how to convert character value into numeric value.

    If you are looking for some FM then
    USE
    CALL FUNCTION 'CHAR_NUMC_CONVERSION'
    EXPORTING
    INPUT = 0
    IMPORTING
    NUMCSTR =
    or use
    Sample code below:
    codeDATA: lv_chr(4) type c,
    lv_num type p.
    CALL FUNCTION 'MOVE_CHAR_TO_NUM'
    EXPORTING
    CHR = lv_chr
    IMPORTING
    NUM = lv_num
    EXCEPTIONS
    CONVT_NO_NUMBER = 1
    CONVT_OVERFLOW = 2
    OTHERS = 3.
    IF SY-SUBRC 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.[/code]
    or USE
    CONVERT_STRING_TO_INTEGER
    or USE THESE FMs
    MOVE_CHAR_TO_NUM
    C14W_CHAR_NUMBER_CONVERSION
    CHAR_NUMC_CONVERSION
    reward if helpful

  • How to replace the char values into numeric in my string?

    Hi Friends,
    I would like to Replace the Charecter values with numeric value in my string.
    Exp : first in my string I am having the value like this : 'ABCD1234' ( may be any char and num values ), and I want too get it by '99991234'.
    I mean How to replace the char values into numeric in my string?
    Thanks,
    Sridhar

    Hi Sridhar,
    I would like to Replace the Charecter values with numeric value in my string.
    Exp : first in my string I am having the value like this : 'ABCD1234' ( may be any char and num values ), and I want too get it by '99991234'.
    So, if i understand you correctly, you want to replace all characters in a string with 9 as in the above example, irrespective of position of the character, if so try with the below code.
    DATA: l_str TYPE string.
    l_str = 'ASKHSIUDNSBDKJSDH124312431243124saasdfsf'.
    REPLACE ALL OCCURRENCES OF REGEX '\D' IN l_str WITH '9'.
    IF sy-subrc EQ 0.
      WRITE: l_str. "Result will be 9999999999999999912431243124312499999999
    ENDIF.
    Regards,
    Chen
    Edited by: Chen K V on Jun 13, 2011 12:36 PM

  • How do I get my XML numeric values to show up when loaded into flash?

    Hi there,
    I've created an AS2 3D carousel  It loads text values in the "content" section of the code below -  including numbers and special characters into the .swf but...
    What I can't figure out, is how to get it so that the "Tooltip" loads the text into the movieclip, but can also have numeric and special characters in it.
    For example, I need the title of one of the icons on this carousel to be "3D Images," but only the "D Images" shows up from the XML text for the tooltip.  The content when a user clicks on the icon can include numbers, just not the titles for some reason.
    http://iongeo.com/collaboration_test_dev/video_arctic_imaging.html
    I think it has something to do with the way that my text is loaded from the xml document specifically for the tooltip and tipText for the movie clip.  Can numeric values be loaded into a movie clip in AS2?  PLEASE HELP!
    import mx.utils.Delegate;
    import mx.transitions.Tween;
    import mx.transitions.easing.*;
    var numOfItems:Number;
    var radiusX:Number = 300;
    var radiusY:Number = 75;
    var centerX:Number = Stage.width / 2;
    var centerY:Number = Stage.height / 2;
    var speed:Number = 0.05;
    var perspective:Number = 130;
    var home:MovieClip = this;
    theText._alpha = 0;
    theHeader._alpha = 0;
    var tooltip:MovieClip = this.attachMovie("tooltip","tooltip",10000);
    tooltip._alpha = 0;
    var xml:XML = new XML();
    xml.ignoreWhite = true;
    xml.onLoad = function()
        var nodes = this.firstChild.childNodes;
        numOfItems = nodes.length;
        for(var i=0;i<numOfItems;i++)
            var t = home.attachMovie("item","item"+i,i+1);
            t.angle = i * ((Math.PI*2)/numOfItems);
            t.onEnterFrame = mover;
            t.toolText = nodes[i].attributes.tooltip;
            t.content = nodes[i].attributes.content;
            t.header = nodes[i].attributes.header;
            t.icon.inner.loadMovie(nodes[i].attributes.image);
            t.r.inner.loadMovie(nodes[i].attributes.image);
            t.icon.onRollOver = over;
            t.icon.onRollOut = out;
            t.icon.onRelease = released;
    function over()
        //BONUS Section
        home.tooltip.tipText.text = this._parent.toolText;
        home.tooltip._x = this._parent._x;
        home.tooltip._y = this._parent._y - this._parent._height/2;
        home.tooltip.onEnterFrame = Delegate.create(this,moveTip);
        home.tooltip._alpha = 100;
    function out()
        delete home.tooltip.onEnterFrame;
        home.tooltip._alpha = 0;
    function released()
        //BONUS Section
        home.tooltip._alpha = 100;
        for(var i=0;i<numOfItems;i++)
            var t:MovieClip = home["item"+i];
            t.xPos = t._x;
            t.yPos = t._y;
            t.theScale = t._xscale;
            delete t.icon.onRollOver;
            delete t.icon.onRollOut;
            delete t.icon.onRelease;
            delete t.onEnterFrame;
            if(t != this._parent)
                var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,0,1,true);
                var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,0,1,true);
                var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,100,0,1,true);
            else
                var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,100,1,true);
                var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,100,1,true);
                var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,150,1,true);
                var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,250,1,true);
                var tw5:Tween = new Tween(theText,"_alpha",Strong.easeOut,0,100,1,true);
                var tw5:Tween = new Tween(theHeader,"_alpha",Strong.easeOut,0,100,1,true);
                theText.text = t.content;
                theHeader.header = t.header;
                var s:Object = this;
                tw.onMotionStopped = function()
                    s.onRelease = unReleased;
    function unReleased()
        //BONUS Section
        var sou:Sound = new Sound();
        sou.attachSound("sdown");
        sou.start();
        delete this.onRelease;
        var tw:Tween = new Tween(theText,"_alpha",Strong.easeOut,100,0,0.5,true);
        var tw:Tween = new Tween(theHeader,"_alpha",Strong.easeOut,100,0,0.5,true);
        for(var i=0;i<numOfItems;i++)
            var t:MovieClip = home["item"+i];
            if(t != this._parent)
                var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,0,t.theScale,1,true);
                var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,0,t.theScale,1,true);
                var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,0,100,1,true);
            else
                var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,100,t.theScale,1,true);
                var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,100,t.theScale,1,true);
                var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,t.xPos,1,true);
                var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,t.yPos,1,true);
                tw.onMotionStopped = function()
                    for(var i=0;i<numOfItems;i++)
                        var t:MovieClip = home["item"+i];
                        t.icon.onRollOver = Delegate.create(t.icon,over);
                        t.icon.onRollOut = Delegate.create(t.icon,out);
                        t.icon.onRelease = Delegate.create(t.icon,released);
                        t.onEnterFrame = mover;
    function moveTip()
        home.tooltip._x = this._parent._x;
        home.tooltip._y = this._parent._y - this._parent._height/2;
    xml.load("icons.xml");
    function mover()
        this._x = Math.cos(this.angle) * radiusX + centerX;
        this._y = Math.sin(this.angle) * radiusY + centerY;
        var s = (this._y - perspective) /(centerY+radiusY-perspective);
        this._xscale = this._yscale = s*100;
        this.angle += this._parent.speed;
        this.swapDepths(Math.round(this._xscale) + 100);
    this.onMouseMove = function()
        speed = (this._xmouse-centerX)/8000;

    Kglad, you are my HERO!
    Thanks so much for your reply, I did not know about the embed options within flash...
    Mike

  • Entering numeric values in CHAR field without quotes

    We are upgrading from Oracle 9i to 10g. In 9i we were able to add numeric data into a CHAR field without single quotes like
    insert into table (id, name, ...) values (1, 'some name', ....)
    When we migrated to 10g, we are getting database errors.
    Any ideas on what can be causing this and why it worked on 9i and not on 10g?
    Thanks

    Got an example, it seems to be working fine for me.
    ME_XE?create table tttttest( char_col char (5));
    Table created.
    Elapsed: 00:00:00.46
    ME_XE?insert into tttttest values (111);
    1 row created.
    Elapsed: 00:00:00.65
    ME_XE?select * from tttttest;
    CHAR_COL
    111
    1 row selected.
    Elapsed: 00:00:00.39
    ME_XE?
    ME_XE?@version
    BANNER
    Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product
    PL/SQL Release 10.2.0.1.0 - Production
    CORE    10.2.0.1.0      Production
    TNS for Linux: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    5 rows selected.
    Elapsed: 00:00:00.57
    [pre[                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Converting char to numeric value

    I have table with social security no. but application does not
    have any validation for data so i get all different kinds of
    data like...
    123-24-0988
    123458900
    n/a
    N
    f234-90-8877
    12 345 6789
    Now i want to remove all '-' and alpha char from value and just
    want to remain only nuemric characters so i can use it as where
    parameter.
    Is their any function that i can use for this or any other logic
    that i can use for this?
    Thanks

    As demonstrated in a previous discussion regarding checking for
    numeric values, translate does not produce the proper results
    when you translate it to a null value. However, you can achieve
    the desired results, by translating to spaces, then replacing
    the spaces:
    UPDATE table_name
    SET ssn = REPLACE (TRANSLATE (LOWER
    (ssn), 'abcdefghijklmnopqrstuvwxyz- ', ' '), ' ', '');

  • How do u convert a numeric value to char

    hi,
    how do u convert a numeric value NUMBER(22) to a character value.... like a to_char() function?
    i've tried the CAST function it won't work.

    Hi,
    Use of CAST function will convert NUMBER to CHAR but it takes a lot of time if there are large number of recrods.
    Syntax:
    CAST(col_name AS char)
    I have tried this, it worked fine for less records.
    Are you getting any error while using cast function or while querying..
    As far as I know it won't give error in these cases (if correct syntax used) but it will take very much time (depending on the number of records) while querying.
    -Vency

  • How do I copy/paste full numerical-only account strings into the Projects WebADI template when the account segment fields in the template require use of the dropdown because they're formatted as alpha-numeric values?

    How do I copy/paste full numerical-only account strings into the Projects WebADI template when the account segment fields in the template require use of the dropdown because they're formatted as alpha-numeric values? I'm using the Integrator named "Projects - Transaction Import" and a custom Layout created based on the seeded Layout named "Transaction Import - Accounted". Do I need to somehow change my Layout to make the Document accept numerical values instead of requiring alpha-numeric values? I need to be able to populate the Document with a large amount of transactions and cannot feasibly go through every transaction to add the alpha-valued name of the account segment to every segment that requires it. The segments in particular causing the problem are "Expnd Type" and "Organization Name" which are both alpha-numeric and as such contain the segment number and name; I need to be able to only have to enter the Natural Account Number (6-digit number only) and the Organization Number (5-digit number only).

    How do I copy/paste full numerical-only account strings into the Projects WebADI template when the account segment fields in the template require use of the dropdown because they're formatted as alpha-numeric values? I'm using the Integrator named "Projects - Transaction Import" and a custom Layout created based on the seeded Layout named "Transaction Import - Accounted". Do I need to somehow change my Layout to make the Document accept numerical values instead of requiring alpha-numeric values? I need to be able to populate the Document with a large amount of transactions and cannot feasibly go through every transaction to add the alpha-valued name of the account segment to every segment that requires it. The segments in particular causing the problem are "Expnd Type" and "Organization Name" which are both alpha-numeric and as such contain the segment number and name; I need to be able to only have to enter the Natural Account Number (6-digit number only) and the Organization Number (5-digit number only).

  • Extracting numeric value of a char

    Hi All,
    I need to get the numeric value of the chars. Here is the code I am using:
    TextField userNumber = new TextField("User Number:", "", 10, TextField.NUMERIC);
    String forNumber = userNumber.getString();
    char number2 = forNumber.charAt(1);
    char number3 = forNumber.charAt(2);
    char number10 = forNumber.charAt(9);
    long counter = number10 * (number2 + number3);
    The result I am getting is the product of the ASCII values instead of the numeric values.
    I've been searching for the solution for a couple of days now but nothing had worked. Thanks for any help.

    volcanohere wrote:
    I have no intention of learning every bit of code there is in Java.BTW, I doubt there is one person on this planet the knows every bit of code, including the SUN staff who created the language. I looked up those methods in the API. That is what it is there for. If you are incapable of doing the smallest bit of research then you won't succeed for very long. And that doesn't just apply to programming.

  • How do you convert numeric values into english words?

    I am interested in creating a field in adobe acrobat that references a total dollar amount field. I want the java script to convert the numeric number into a written word, such as $59.59 as Fifty Nine and 59/100. I have no experience writing java script code and would really like some help on how this can get done. Its also important to embed in the programming that if their is no numeric value to reference, then nothing get referenced. This means an empty text box. Thanks for any help.

    Im using the below script...... I'm a complete novice at this and helping a friend out with it.
    Any info is appreciated.
    aTens = [ "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"];
    aOnes = [ "Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine",
      "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen",
      "Nineteen" ];
    function ConvertToHundreds(num)
       var cNum, nNum;
       var cWords = "";
       num %= 1000;
       if (num > 99) {
          /* Hundreds. */
          cNum = String(num);
          nNum = Number(cNum.charAt(0));
          cWords += aOnes[nNum] + " Hundred";
          num %= 100;
          if (num > 0)
             cWords += " and "
       if (num > 19) {
          /* Tens. */
          cNum = String(num);
          nNum = Number(cNum.charAt(0));
          cWords += aTens[nNum - 2];
          num %= 10;
          if (num > 0)
             cWords += "-";
       if (num > 0) {
          /* Ones and teens. */
          nNum = Math.floor(num);
          cWords += aOnes[nNum];
       return cWords;
    function ConvertToWords(num)
       var aUnits = [ "Thousand", "Million", "Billion", "Trillion", "Quadrillion" ];
       var cWords = (num >= 1 && num < 2) ? "Dollar and " : "Dollars and ";
       var nLeft = Math.floor(num);
       for (var i = 0; nLeft > 0; i++) {
           if (nLeft % 1000 > 0) {
              if (i != 0)
                 cWords = ConvertToHundreds(nLeft) + " " + aUnits[i - 1] + " " + cWords;
              else
                 cWords = ConvertToHundreds(nLeft) + " " + cWords;
           nLeft = Math.floor(nLeft / 1000);
       num = Math.round(num * 100) % 100;
       if (num > 0)
          cWords += ConvertToHundreds(num) + " Cents";
       else
          cWords += "Zero Cents";
       return cWords;
    You can use the following script for the custom calculation for the words field when the number field is named "Number":
    event.value = "";
    var f = this.getField("Number");
    if(f.valueAsString != "") {
    event.value = ConvertToWords(f.value);

  • SQL LOADER. Numeric values loaded as Varchar2 characters

    Dear all,
    please I need your help in this little problem . I am loading using SQL Loader a data file where a field X has a numeric value, and in the Control file it is defined as numeric value as well in the database table but the strange thing is that its values are loaded with the character "E15" at the end of each value.
    The data files are extacted from AS400 , cobol system and loaded using SQL LOADER in he Oracle database 10g.
    What could be the reason?
    I appreciate your help very much , regards

    We can not guess as to what you data looks like nor can we guess as to what your control file indicates.
    Post sufficient information for someone to help you.
    PS: 10g is not a database version ... post the operating system and version information too:
    SELECT * FROM v$version;

  • Can automator turn thousands of samples into Apple Loops? (VSL rep/runs)

    Hello everyone,
    First off, I'm familiar with how to build my own apple loops and find them to be VERY useful, especially in the application I'm about to describe. However, I find it quite tedious to build them manually, especially when dealing with thousands of samples. Thus I'm looking for the best/easist way to create apple loops, hopefully using Tigers "automator."
    Heres my situation: I use/love VSL sample libs, which contain many articulations/phrases, but some of these are "tempo specific" such as the numerous instrument runs, repetition files, glissandos, crescendos, etc, and when doing a film score I cannot let tempo specific files dictate the tempo of the piece (the film does that). Thus I've started taking some of the VSL samples (especially the repetition and runs) and turning them into apple loops, which conform to the tempo of the piece. Within reason, the results are WONDERFUL allow me to continue to use these very realistic phrases at almost any tempo!
    However, I've grown tired of manually converting these files to apple loops, and thus have only converted a handful of these phrases into apple loops. Whats worse is when I'm forced to stop the creative process to turn a phrase into an apple loop only to find that after all that time creating the loop, it doesnt work!
    Is it possible to use Tigers automator to automatically convert .wav files into apple loops? This would be a great time saver, and would possibly allow for turning the thousands of samples into apple loops. Anyone currently doing this type of thing? Is it worth it in the end?
    Thanks in advance for any help/tips you can provide.

    Hi Jonathan,
    You can use Logic to create AIFFs of these files very quickly.
    Then, open them in ALU.
    Select all files.
    Change 1 field.
    Save.
    You now have Apple Loops -- they will have a few few things automatically inserted such as guessed tempi -- they will almost always be set to 4/4 to the tempo closest to 120(?)... but they will load and many will load usably for your needs.
    Now, I don't know exactly what you are facing with this concept but it sounds like a very big job and this will still leave much time hand tuning. If this is true, I recommend you have a look at Accelerando:
    http://www.eigentoneresearch.com/Accelerando.html
    Accelerando contains several tools which will substantially decrease the tedium - and yes, it does use Automator. It works directly with Logic Pro, Apple Loops Utility - and more. Ultimately, you may be able to create workflows which handle this task with 1 gesture per Apple Loop - although a large library of workflows would be required to accomplish this to most users expectations so 2 or more gestures is more likely. of course, you can try to set up a more intelligent scheme if, say, the files can be filtered by an attribute such as their name.
    J
    Per Apple's TOU, I am required to state my affiliation with Eigentone Research.
    I Developed Accelerando

  • Creating a sound from an array of numeric values and playing it on speakers

    How do I create take a sound I have stored as an array (or could be an arraylist if needed) of numeric values (at the moment as doubles) whiten my program and output it to speakers? I am using blueJ.
    for example (0, 0.1, 0.4, 0.8, 0.9, 1, 0.8, 0.6, 0.3, 0.1, etc...) would be a very high frequency sin wave.
    Edited by: alan2here on Feb 6, 2008 11:28 AM

    I stumbled upon this thread with a question somewhat related:
    I've recorded a wave file from microphone. But what I would like is an array of numbers in the same way alan said. I'm also working on my own project involving signal processing (i'm trying to do speech recognition).
    I can't really find a nice way of getting that array of numbers. I've tried to find out how wave file stores it's data, and directly read from the File object, but i figured there should be an easier way...
    I used this code to read the sound:
    *     SimpleAudioRecorder.java
    *     This file is part of jsresources.org
    * Copyright (c) 1999 - 2003 by Matthias Pfisterer
    * All rights reserved.
    * Redistribution and use in source and binary forms, with or without
    * modification, are permitted provided that the following conditions
    * are met:
    * - Redistributions of source code must retain the above copyright notice,
    *   this list of conditions and the following disclaimer.
    * - Redistributions in binary form must reproduce the above copyright
    *   notice, this list of conditions and the following disclaimer in the
    *   documentation and/or other materials provided with the distribution.
    |<---            this code is formatted to fit into 80 columns             --->|
    import java.io.IOException;
    import java.io.File;
    import javax.sound.sampled.DataLine;
    import javax.sound.sampled.TargetDataLine;
    import javax.sound.sampled.AudioFormat;
    import javax.sound.sampled.AudioSystem;
    import javax.sound.sampled.AudioInputStream;
    import javax.sound.sampled.LineUnavailableException;
    import javax.sound.sampled.AudioFileFormat;
    public class SimpleAudioRecorder
    extends Thread
         private TargetDataLine          m_line;
         private AudioFileFormat.Type     m_targetType;
         private AudioInputStream     m_audioInputStream;
         private File               m_outputFile;
         public SimpleAudioRecorder(TargetDataLine line,
                             AudioFileFormat.Type targetType,
                             File file)
              m_line = line;
              m_audioInputStream = new AudioInputStream(line);
              m_targetType = targetType;
              m_outputFile = file;
         /** Starts the recording.
             To accomplish this, (i) the line is started and (ii) the
             thread is started.
         public void start()
              /* Starting the TargetDataLine. It tells the line that
                 we now want to read data from it. If this method
                 isn't called, we won't
                 be able to read data from the line at all.
              m_line.start();
              /* Starting the thread. This call results in the
                 method 'run()' (see below) being called. There, the
                 data is actually read from the line.
              super.start();
         /** Stops the recording.
             Note that stopping the thread explicitely is not necessary. Once
             no more data can be read from the TargetDataLine, no more data
             be read from our AudioInputStream. And if there is no more
             data from the AudioInputStream, the method 'AudioSystem.write()'
             (called in 'run()' returns. Returning from 'AudioSystem.write()'
             is followed by returning from 'run()', and thus, the thread
             is terminated automatically.
             It's not a good idea to call this method just 'stop()'
             because stop() is a (deprecated) method of the class 'Thread'.
             And we don't want to override this method.
         public void stopRecording()
              m_line.stop();
              m_line.close();
         /** Main working method.
             You may be surprised that here, just 'AudioSystem.write()' is
             called. But internally, it works like this: AudioSystem.write()
             contains a loop that is trying to read from the passed
             AudioInputStream. Since we have a special AudioInputStream
             that gets its data from a TargetDataLine, reading from the
             AudioInputStream leads to reading from the TargetDataLine. The
             data read this way is then written to the passed File. Before
             writing of audio data starts, a header is written according
             to the desired audio file type. Reading continues untill no
             more data can be read from the AudioInputStream. In our case,
             this happens if no more data can be read from the TargetDataLine.
             This, in turn, happens if the TargetDataLine is stopped or closed
             (which implies stopping). (Also see the comment above.) Then,
             the file is closed and 'AudioSystem.write()' returns.
         public void run()
                   try
                        AudioSystem.write(
                             m_audioInputStream,
                             m_targetType,
                             m_outputFile);
                   catch (IOException e)
                        e.printStackTrace();
         public static void main(String[] args)
              if (args.length != 1 || args[0].equals("-h"))
                   printUsageAndExit();
              /* We have made shure that there is only one command line
                 argument. This is taken as the filename of the soundfile
                 to store to.
              String     strFilename = args[0];
              File     outputFile = new File(strFilename);
              /* For simplicity, the audio data format used for recording
                 is hardcoded here. We use PCM 44.1 kHz, 16 bit signed,
                 stereo.
              AudioFormat     audioFormat = new AudioFormat(
                   AudioFormat.Encoding.PCM_SIGNED,
                   44100.0F, 16, 2, 4, 44100.0F, false);
              /* Now, we are trying to get a TargetDataLine. The
                 TargetDataLine is used later to read audio data from it.
                 If requesting the line was successful, we are opening
                 it (important!).
              DataLine.Info     info = new DataLine.Info(TargetDataLine.class, audioFormat);
              TargetDataLine     targetDataLine = null;
              try
                   targetDataLine = (TargetDataLine) AudioSystem.getLine(info);
                   targetDataLine.open(audioFormat);
              catch (LineUnavailableException e)
                   out("unable to get a recording line");
                   e.printStackTrace();
                   System.exit(1);
              /* Again for simplicity, we've hardcoded the audio file
                 type, too.
              AudioFileFormat.Type     targetType = AudioFileFormat.Type.WAVE;
              /* Now, we are creating an SimpleAudioRecorder object. It
                 contains the logic of starting and stopping the
                 recording, reading audio data from the TargetDataLine
                 and writing the data to a file.
              SimpleAudioRecorder     recorder = new SimpleAudioRecorder(
                   targetDataLine,
                   targetType,
                   outputFile);
              /* We are waiting for the user to press ENTER to
                 start the recording. (You might find it
                 inconvenient if recording starts immediately.)
              out("Press ENTER to start the recording.");
              try
                   System.in.read();
              catch (IOException e)
                   e.printStackTrace();
              /* Here, the recording is actually started.
              recorder.start();
              out("Recording...");
              /* And now, we are waiting again for the user to press ENTER,
                 this time to signal that the recording should be stopped.
              out("Press ENTER to stop the recording.");
              try
                   System.in.read();
              catch (IOException e)
                   e.printStackTrace();
              /* Here, the recording is actually stopped.
              recorder.stopRecording();
              out("Recording stopped.");
         private static void printUsageAndExit()
              out("SimpleAudioRecorder: usage:");
              out("\tjava SimpleAudioRecorder -h");
              out("\tjava SimpleAudioRecorder <audiofile>");
              System.exit(0);
         private static void out(String strMessage)
              System.out.println(strMessage);
    }Daniel

Maybe you are looking for

  • Calendars: How to Create an Intro Page?

    Is there any way to create some sort of Prolog/Dedication/Introduction page for an iPhoto Calendar? Even a way to print something on the Calendar's back cover? I'm creating a special "limited edition" calendar (only about 10 copies in total) for a pa

  • EIM WIM v4.3(1) installation error

    Hi all, In my current setup a) 3 servers running app/msg/serv, database and web server all within the same domain b) broadcom hotfix was deployed c) windows authentication was used d) installation was done on the 1st server where all components were

  • Am I able to retrieve more than 30 days worth of pictures using photo stream?

    I just got my Ipad replaced today due to software porblmes and the man at the Apple store attempted to sync all my stuff to Icloud but apparently it didnt work.Although Photo stream did save the photos I have taken in the last 30 days but wow I only

  • Is it possible (JEditorPane)...?

    Is it possible to load a html page in a JEditorPane and then have this page as a background while typing some text inside the same JEditorPane?

  • Does " Close Project without Saving " key assignment work at all ?

    I'm using Logic Express 8. I'd really like to be able to close a project without seeing the " do I want to save the project " box. There is a function to do that in the Keypress Commands, but it seems broken. I've tried assigning several different ke