70 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include	<stdio.h>
 | 
						|
#include	<stdlib.h>
 | 
						|
#include	<stdtypes.h>
 | 
						|
#include	<strings.h>
 | 
						|
#include	<scanner.h>
 | 
						|
#include	<isam.h>
 | 
						|
#include	<tabutil.h>
 | 
						|
 | 
						|
int main(int argc,char** argv)
 | 
						|
 | 
						|
{
 | 
						|
	init_global_vars();
 | 
						|
	if (argc > 2)
 | 
						|
	{
 | 
						|
		argv++;
 | 
						|
		TScanner dfile(*argv);
 | 
						|
		TLocalisamfile* of;
 | 
						|
		TString s(dfile.line());
 | 
						|
		TToken_string w(s);
 | 
						|
		const char* work = w.get();
 | 
						|
		const int nf = atoi(work);
 | 
						|
		const TString nt(work);
 | 
						|
		const int reclen = w.get_int();
 | 
						|
 | 
						|
		if (nf) of = new TLocalisamfile(nf);
 | 
						|
		else of = new TTable(nt);
 | 
						|
    
 | 
						|
		TToken_string d(40, ',');
 | 
						|
 | 
						|
		while (*(work = dfile.line()))
 | 
						|
			d.add(work);
 | 
						|
		
 | 
						|
		argv++;
 | 
						|
		TScanner ifile(*argv);
 | 
						|
 | 
						|
		TString name, just(3), ws(256);
 | 
						|
 | 
						|
		while (*(work = ifile.line()))
 | 
						|
		{
 | 
						|
			s = work;
 | 
						|
			s.left_just(reclen);
 | 
						|
			d.restart();
 | 
						|
			of->zero();
 | 
						|
			w = d.get();
 | 
						|
			while (w.not_empty())
 | 
						|
			{
 | 
						|
				const int st = w.get_int();
 | 
						|
				const int len = w.get_int();
 | 
						|
				name = w.get();
 | 
						|
				if (name != "-")
 | 
						|
				{
 | 
						|
					ws = s.mid(st, len);
 | 
						|
					just = w.get();
 | 
						|
					if (just == "Z") ws.right_just(len, '0');
 | 
						|
					else
 | 
						|
						if (just == "R") ws.right_just(len);
 | 
						|
						else
 | 
						|
							if (just == "L") ws.left_just(len);
 | 
						|
					of->put(name, ws);
 | 
						|
				}
 | 
						|
				w = d.get();
 | 
						|
			}
 | 
						|
			of->write();
 | 
						|
			if (of->bad()) of->rewrite();
 | 
						|
		}
 | 
						|
		delete of;
 | 
						|
	}
 | 
						|
	free_global_vars();
 | 
						|
}
 |