Problem syntax with user-defined function


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Problem syntax with user-defined function
# 8  
Old 04-09-2012
Where are you calling the function?
BTW: note the space between n and v, n, v. This is convention, although it should be a TAB character, not a space, but I guess that got lost somewhere in copy-paste land.. This means that the variable to the right of the TAB are local variables and that the function has 1 parameter...

Last edited by Scrutinizer; 04-09-2012 at 03:45 AM..
# 9  
Old 04-09-2012
Ok, but How do you call the function?

I tried with:
Code:
{b = split($2,a,", ")
       for (i=1; i<=b; i++){
        n = a[i]
        
        convert($2) 
       
       }
}1

Code:
{b = split($2,a,", ")
       for (i=1; i<=b; i++){
        n = a[i]
        
        convert(n) 
       
       }
}1

Code:
{b = split($2,a,", ")
       for (i=1; i<=b; i++){
        n = a[i]
        
        convert(a[i]) 
       
       }
}1

it returns the input everytime.


***EDIT***
Still the same with the TAB
# 10  
Old 04-09-2012
Try:
Code:
#!/usr/bin/awk -f

BEGIN{FS=OFS="|"}

function convert (n,    v,w,x,y,r1,r10,r100,r1000){
  split("I II III IV V VI VII VIII IX",r1," ")
  split("X XX XXX XL L LX LXX LXXX XC",r10," ")
  split("C CC CCC CD D DC DCC DCCC CM",r100," ")
  split("M MM MMM",r1000," ")

  v = (n - (n % 1000)) / 1000

  n = n % 1000
  w = (n - (n % 100)) / 100

  n = n % 100
  x = (n - (n % 10)) / 10

  y = n % 10
  return(r1000[v] r100[w] r10[x] r1[y])
}


{ 
  b = split($2,N,", ")
  for (i=1; i<=b; i++){
    s=s convert(N[i]) " "
  }
  $2=s
}
1

There was not return statement in the function
You needed to assign the outcome to field 2..
This User Gave Thanks to Scrutinizer For This Post:
# 11  
Old 04-09-2012
Great !

Thanks!

but what is the function of the "return" statement?
# 12  
Old 04-09-2012
The return statement can be used to return a value. Note that s=s convert(N[i]) " " is a concatenated assignment to variable s, consisting of 3 strings: s, convert(N[i]) , and a space

Last edited by Scrutinizer; 04-09-2012 at 04:42 AM..
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Call user defined function from awk

My requirement is to call function ("fun1") from awk, and print its returned value along with $0. fun1() { t=$1 printf "%02d\n", $t % 60; } echo "Hi There 23" | awk '{print $0; system(fun1 $3)}' Any suggestions what to be modified in above code to achieve requirement.. (5 Replies)
Discussion started by: JSKOBS
5 Replies

2. UNIX for Dummies Questions & Answers

user defined commands

Hi, i would like to create user defined commands. e,g: if an user executes , mkdircd test then a directory called test should be created and it should be cd to test. How i can create the command mkdircd with below action: mkdir $1 && cd $1. Please help me in achieving this (7 Replies)
Discussion started by: pandeesh
7 Replies

3. Shell Programming and Scripting

How to pass parameter to User defined function in shell script?

Hello, Can anyone guide me tin passing parameters into user defined function of shell script (KSH). Here is my code, InsertRecord() { DB_TBL=$(sqlplus $USERID/$PASSWORD@$DATABASE << EOF set head off set feed off set serveroutput on INSERT INTO TBL1 ( OLD_VAL, NEW_VAL, ... (7 Replies)
Discussion started by: Poonamol
7 Replies

4. Shell Programming and Scripting

Shell Script to display function names (called & defined) in a C++ Source Code

Hello to all, I am looking for a way to display only the names of function (calls & definition) of a C++ source code.There is already a post related to this, but the script is to find the functions using a specific variable, and the replies are not that convincing since they cannot be used for... (2 Replies)
Discussion started by: frozensmilz
2 Replies

5. Shell Programming and Scripting

Clearing a defined function from memory

I guess what I mean is: is there something like unalias to clear functions defined by sourcing a script or config/alias file from memory? Is it necessary to start a new terminal session, or can it be done with a command? I tried "function somefunc {}" but bash told me it hit an "unexpected... (0 Replies)
Discussion started by: SilversleevesX
0 Replies

6. UNIX and Linux Applications

strange behavior of PSQL user defined function

Segregated the problematic portion, and showing for your view here., 1. Following is the function definition, create or replace function new_del(id integer) returns void as $$ begin raise info 'dollar :%',$1; delete from testing where id=$1; end ; $$ language 'plpgsql'; ... (1 Reply)
Discussion started by: thegeek
1 Replies

7. Shell Programming and Scripting

Return an array of strings from user defined function in awk

Hello Friends, Is it possible to return an array from a user defined function in awk ? example: gawk ' BEGIN{} { catch_line = my_function(i) print catch_line print catch_line print catch_line } function my_function(i) { print "echo" line= "awk" line= "gawk"... (2 Replies)
Discussion started by: user_prady
2 Replies

8. Shell Programming and Scripting

need help with User Defined Function

Dear Friends, I need a help regarding User defined function in shell script. My problem is as follows: my_func.sh my_funcI(){ grep 'mystring' I.dat } my_funcQ(){ grep 'mystring' Q.dat } myfuncI myfuncQ But As both the function has same function only the... (11 Replies)
Discussion started by: user_prady
11 Replies

9. UNIX for Dummies Questions & Answers

User defined service

I want to add a new IP service which executes a script on SCO OS5. I have amended /etc/services and added to port number (3333) I have amended /etc/inetd.conf and added a line for this service but I can't get it to execute my own shell script When I telnet to the IP address on port 3333 I... (1 Reply)
Discussion started by: markdrury
1 Replies

10. Shell Programming and Scripting

Nawk user-defined function

HELP!!!! I am in an on-line shell programming class and have a question. Here is the data: Mike Harrington:(510) 548-1278:250:100:175 Christian Dobbins:(408) 538-2358:155:90:201 Susan Dalsass:(206) 654-6279:250:60:50 (There are 12 contribuors total) This database contains names, phone... (1 Reply)
Discussion started by: NewbieGirl
1 Replies
Login or Register to Ask a Question