#99 Article 1162 Posted at 1998/02/16 13:36:05 by じょん川西 (MAP2337) [C.BUILDER]

Subject: c++builderでコマンドラインなプログラムを作る

Borland C++ Builderで、キャラクターベースで動くプログラムって、作る事ができる
のでしょうか?

「キャラクターベース」というとなんか語弊がありますのが
「C言語の教科書の最初の方にのっている「Hello World」とか表示する」
「Main(){...}で始まるプログラム」なんでが...実際のソースファイルも載せます。

ソースの56行目で「opn = fopen(outfile,"wt")」とやって、新規のテキストファイル
を開いているのですが、「LSIC86」でコンパイルすると、ファイル名が「8.3文字」の
制限に引っ掛かってしまいます。

現在手元にある32Bit対応のC/C++開発環境は、「Borland C++ Builder」しかもって
ないのですが、ヘルプを一字一句全部目を通したわけじゃないのですが、全然
やりかたが検討つきません。

C++Builderで「キャラクターベース」のプログラム(実行ファイル)って、作れる
ものなのでしょうか?。

-----------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <ctype.h>

void scrmake(char* infile);

int main(int argc, char* argv[])
{
	char *inf;
	int i;

	inf =argv[1];
	scrmake(inf);

	/*printf(inf)*/;

	return 0;
}
#define LBUFSIZE 1024

char buf[LBUFSIZE];
size_t buf_len;
FILE* ifp;

void scrmake(char* infile)
{
	char str1[LBUFSIZE];
	char str2[LBUFSIZE];
	char str3[LBUFSIZE];
	char outfile[LBUFSIZE];
	int i = 0;

	FILE* ofp;

	if (infile != NULL) {
		if ((ifp = fopen(infile, "rt")) == NULL) {
			fprintf(stderr, " Error: Can't open %s\n",infile);
			exit(1);
		}
	} else {
		ifp = stdin;
	}

	while (feof(ifp) == 0) {
		if (fgets(buf, sizeof buf, ifp) == NULL) break;
		buf_len = strlen(buf);

	/*printf(buf);*/
	sscanf(buf,"%s%s%s",str1,str2,str3);
	
	strcpy(outfile,str1);
	strcat(outfile,".bat");
	
		if ((ofp = fopen(outfile, "wt")) == NULL) {
			fprintf(stderr, " Error: Can't open %s\n",outfile);
			exit(1);
		}
	fprintf(ofp,"net use l%s\nnet use m%s\nnet use n%s\n",str1,str2,str3);

	}
	if (ifp != stdin) {
		fclose(ifp);
	}
}
-------------------------------------------------------------------------------

行間....もっと埋めないと質問の内容わからいでしょうか.....。

			じょん川西  E-Mai/kawanisi@mapletown.net