OK I'll start with performance, It's probably related GNU array sorting try removing the PROCINFO["sorted_in"] = "@ind_str_asc" line and process a mid-sized file.
If it's a lot quicker we can try turning off array sorting until the processing is done.
OK now for a quick description on what this script is doing.
I'll start with the last line first: As you said the file is processed twice and the reason for this is the heading line. This appears as the first output line and it must know at this point all the heading strings that the document uses. We could read the whole document into memory then output the headings and the data in the END block but this would be a poor solution for big input files.
Pass 1 - Build tags array
To simplify code pass 1 does pretty much the same work as pass 2, most of this is unnecessary and could be skipped by adding FNR!=NR to all the conditions except for the "PERMANENT SUBSCRIBER DATA" (as this is where tags is built).
FS=”\n” RS=””
RS is record separator and FS is field separator. When a blank RS is used a blank line operates as the record separator, so for:
Awk passes 1 record with field 1 as “SUBSCRIBER IDENTITY” and field 2 as “MSISDN IMSI STATE AUTHD”, and field 3 with the data.
Then a second record appears with field 1 as "NAM" and field 2 as "1".
As you can see awk has done a lot of the work for us now as each part of the document comes in as an individual record.
Hi,
I tried this but could not get it...
here is what I need I have an xml where I get all the data in blocks but some times I get empty blocks with no data...shown below..I need to delete only those blocks with no data, I tried couple of ways but could not do it..any help is appreciated...... (1 Reply)
Hello all,
Below is what I am trying to accomplish:
I have a file that looks like this
/* ----------------- xxxx.y_abcd_00000050 ----------------- */
jdghjghkla
sadgsdags
asdgsdgasd
asdgsagasdg
/* ----------------- xxxx.y_abcd_00000055 ----------------- */
sdgsdg
sdgxcvzxcbv... (8 Replies)
Hi,
I've just created a shell script that produces the following output:
hd1 hd3 hd9
/optnonaix/esp /optnonaix/app/oracle /u06
(564.67) (675.97) (678.90)
I would like the output to be as
hd1 /optnonaix/esp (564.67)
hd3 /optnonaix/app/oracle (675.97)
hd9 /u06 (678.90)
Need some... (2 Replies)
Hello,
I have a file like this:
FILE.TXT:
(define argc :: int)
(assert ( > argc 1))
(assert ( = argc 1))
<check>
#
(define c :: float)
(assert ( > c 0))
(assert ( = c 0))
<check>
#
now, i want to separate each block('#' is the delimeter), make them separate files, and then send them as... (5 Replies)
Hi
I do have a big file of the following format
a b c d e f g
2 3 5 6 6 6 7
3 4 5 6 7 9 0
4 5 7 8 9 9 0
1 2 4 5 6 7 8
3 5 6 7 2 3 4
5 6 7 4 3 2 4
5 4 5 6 3 5 5
r h i j k l m
2 3 4 5 6 7 8
4 5 7 8 9 9 0
3 5 6 7 2 3 4
2 3 5 6 6 6 7
5 5 7 8 9 2 3
1 2... (7 Replies)
I have to create a Perl script which will transpose the data output from my experiment, from columns to rows, in order for me to analyse the data.
I am a complete Perl novice so any help would be greatly appreciated.
The data as it stands looks like this:
Subject Condition Fp1 ... (12 Replies)
Hi all,
I want to extract blocks of data from a file depending on the contents of that block.
The input file(table) has several blocks each starting with 'gene' in the first column. I want to extract only those blocks which do not have the expression '_T02' in the second column.
Input file ... (3 Replies)
Hello masters,
I am filtering data based on completeness. A (Name , Group) combination in File2 is only complete when it has data for all subgroups specified in File1.
All incomplete (Name , Group) combinations do not appear in the output.
So for example , Name1 Group 1 in File2 is... (6 Replies)
I do have a big tab delimited file of the following format
aa 344 456
aa 34 67
bb 34 90
bb 23 100
bb 1 89
d 0 12
e 45 678
e 78 90
e 56 90
....
....
....
I would like to transpose the data based on the category on column one and get the output file in the following tab delimited... (8 Replies)
Discussion started by: Kanja
8 Replies
LEARN ABOUT DEBIAN
merge_fonts
merge_fonts(3alleg4) Allegro manual merge_fonts(3alleg4)NAME
merge_fonts - Merges two fonts into one font. Allegro game programming library.
SYNOPSIS
#include <allegro.h>
FONT *merge_fonts(FONT *f1, FONT *f2)
DESCRIPTION
This function merges the character ranges from two fonts and returns a new font containing all characters in the old fonts. In general, you
cannot merge fonts of different types (eg, TrueType fonts and bitmapped fonts), but as a special case, this function can promote a mono-
chrome bitmapped font to a color font and merge those. Example:
FONT *myfont;
FONT *myfancy_font;
FONT *lower_range;
FONT *upper_range;
FONT *capitals;
FONT *combined_font;
FONT *tempfont;
...
/* Create a font that contains the capitals from */
/* the fancy font but other characters from myfont */
lower_range = extract_font_range(myfont, -1, 'A'-1);
upper_range = extract_font_range(myfont, 'Z'+1, -1);
capitals = extract_font_range(myfancy_font, 'A', 'Z');
tempfont = merge_fonts(lower_range, capitals);
combined_font = merge_fonts(tempfont, upper_range);
/* Clean up temporary fonts */
destroy_font(lower_range);
destroy_font(upper_range);
destroy_font(capitals);
destroy_font(tempfont);
RETURN VALUE
Returns a pointer to the new font or NULL on error. Remember that you are responsible for destroying the font when you are finished with it
to avoid memory leaks.
SEE ALSO extract_font_range(3alleg4), is_trans_font(3alleg4), is_color_font(3alleg4), is_mono_font(3alleg4), exfont(3alleg4)Allegro version 4.4.2 merge_fonts(3alleg4)