• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:前スペース補填)

sprintfで前スペースを入れる方法とその使い方

atom_seedの回答

  • atom_seed
  • ベストアンサー率48% (25/52)
回答No.4

「コーディングの全て」をこちらの環境でためすと "%7s"でも"%8s"でもそれぞれ正確に動作しました。 以下"%7s"での出力例のコピペです。 --------------------------------------------------- 借入金一覧表 戻る 氏名,事由,異動日,借入額,限度残 47213,1,20080503, 3000, 50000 38221,5,20080508, 25000, 100000 18994,1,20080506, 2700, 385000 38221,5,20080508, 25000, 100000 18994,1,20080506, 2700, 385000 --------------------------------------------------- プログラム以外に原因があるかもしれませんね。。。 ちなみに、こちらの動作環境は、WinXP IE7 ActivePerl5.8.7でした。 しかし、経験上開発環境としては、多少の差異はないはずです。

nagahaha
質問者

お礼

atom_seedさん、 本当にお手数をかけております、申し訳在りません。 全て了解です、見事に表示されていますね。 まとめると、ソースコードには誤りがない、ということですね。 そして何かの環境がatom_seedさんと私とで違うと。 ちなみに私のActivePrelをみてみましたら、5.6.1でした。 この違いにより出方が違うということは考えられるのでしょうか。 何年も前にインストールしたままで使っています。 ヴァージョンの関係で、桁の表示もうまく行かないということはあるのでしょうか、 基本的なところなので違わないような気がしますが。不思議です。 そもそも<pre>というタグはそのままを表示するということですから、 ブラウザなどにディペンドするのでしょうか。 私のI/E6.0は特にいじっていませんが。 逆に、こういうものだということを前提に、 何かを入れたりすることで、atom_seedさんみたいにベタ打ちとすることが出来るのでしょうか。 いろいろ調べているつもりですが、 これだという解決にたどり着けません。 とにかく、もう少し調べてみます。 何回も何回も有り難うございました。

関連するQ&A

  • sprintfで0ならスペースにしたい

    お世話になります。 sprintfを使って編集しています。 3桁で統一したいため、 $trm01 = sprintf("%3d",$trm01); のようにやっています。 $trm01が0の場合、3桁のスペースとしたいのですが。 宜しくお願いします。

    • ベストアンサー
    • Perl
  • スペースパディングのやり方を教えてください。

    http://www.php.net/manual/ja/function.sprintf.php などを参考にして数値型の整形をしようと思います。 1005という数値を7桁にしたい場合 "__1,005" (先頭スペースは2つアンダーバーで表示) という感じで頭にスペースパディングを入れて 3桁ごとにカンマをつけたいのです。 まずはスペースを入れようと思い sprintf("%4d",1005); sprintf("%' 4d",1005); と試してみましたがスペースがひとつしか入りません。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=905463 なども参考にしましたがなかなかうまくいきません。 よい方法があれば宜しくお願いいたします。

    • 締切済み
    • PHP
  • フォルダーの深さの限界

    linux上のgccを用いて計算処理をさせるつもりです。 1.下記の動作はうまく行きました。(フォルダ名を一部伏字にしています)。 sprintf(input_file,"./w****/o*****/%d.txt",i); sprintf(output_file,"./testout/%d.txt",i); input_fileを入力し、計算処理し、output_fileに出力する。 計算しやすいようにファイル名は自然数を使います。 2. ただし、下記の動作はうまく行かないです。 sprintf(input_file,"./w****/o*****/live/%d.txt",i); sprintf(output_file,"./testout/%d.txt",i); PCの動作が中断します。 input_fileの階層が一段増えたせいなのかもしれません。 どなたか解決法を教えてください。

  • こんな有料レンタルHPスペースありませんか?

    ・ブラウザ上でファイルのアップロードができる,ブラウザ上でHTMLファイルが作成できる。 ・広告がでない。 ・月額600円程度(一年契約で月600円でもいいです。) ・アドレスが非常に覚えやすい。 ・CGIが使える。(チャットは使えなくていいです。掲示板ができるだけで十分です。) ・メールもHPスペースといっしょにとれる(一個だけでいいです。 ・容量は二桁あればいいですが,できれば30MBか50MBほしいです。それと容量の増やせるほうがいいです。 ・それとこれは別になくてもいいですが,お小遣い稼ぎとして広告をのせれる。 とこんなもんなんですが・・・ こんないいところないでしょうか?わがままばかりですいません。 やっぱないですかね? わがままだらけでほんとにすいません。

  • バッチファイル For 文 スペース

    いつも大変御世話になっております。 WindowsXP環境下の 【D:\test】フォルダ直下に TEST.conf というファイルがあり 中身は1行こんな文があります。↓ test001=12345 6 そして 【D:\test\bat】フォルダ直下に TEST.bat というファイルがあり 中身のードはこんなコードです。↓ For /F "tokens=1*" %%i in (..\TEST.conf) do set %%i SET IN_FILE=%test001% 実行結果は SET IN_FILE=12345 になりました。 なぜ SET IN_FILE=12345 6 ではないのですか? スペースを _ (アンスコ)など何か入れてあげると SET IN_FILE=12345_6 上記バッチファイルのFor文では、スペース手前までしか見てくれないのでしょうか? 他に方法は無いのでしょうか? もしご存知の方がいらっしゃるようでしたら、お手数ですが 実現可能かどうかをご回答願いますでしょうか? 以上、何卒宜しくお願い致します。

  • CGIのforeach文

    CGIを作成していてforeach文のところを通ってくれません。原因が不明なのですが下記でおかしいことなどがあったらおしえてください。 お願いします。 $entrycgi = "./touhyou.cgi"; $Location = '../images'; $imgVote = $Location."/click.gif"; $votefile = "./database/vtbl.dat"; sub vote_form{ print "<FORM ACTION=\"$entrycgi\" METHOD=\"post\" NAME=\"Form\">\n"; print "<INPUT TYPE=\"hidden\" NAME=\"proc\" VALUE='entry'>\n"; print "<INPUT TYPE=\"hidden\" NAME=\"Action\">\n"; print "<TABLE><TR><TD><IMG SRC=\"$Location."/top.gif\"></TD></TR></TABLE>\n"; open(FILE, "+<$votefile"); @output = <FILE>; close(FILE); print "<TABLE><TR>\n"; $i = 1; @output_sort = sort { $b <=> $a } @output; foreach $output_sort(@output_sort){ ($COUNT, $NM, $FILENM, $NO) = split(/\,/, $output_sort); $filename = $Location.$FILENM; print "<IMG SRC='$filename' HEIGHT=100 WIDTH=100></TD>\n"; if ($i == 5) { last; } else { print "<TD width=\"50\"></TD>\n"; $i++; } } print "</TR></TABLE>\n"; }

    • ベストアンサー
    • CGI
  • 半角スペースが有効にならない。

    前のページで入力された値を取得するCGIですが、どうしても半角スペースを認識しません。 それどころか、半角スペースの後ろを一切消してデータを取得しています。 同じように作成したものはきちんと動いているのに…。 どこが間違ってるかご指摘お願いします。 ---------- #!/usr/local/bin/perl read(STDIN,$buffer,$ENV{'content_length'}); @atai = split(/&/,$buffer); foreach $atais(@atai){ ($key, $value) = split(/=/, $atais); $FORM{$key}=$value; } $buffer =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $key =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $buffer =~ tr/+/ /; $value =~ tr/+/ /; $key =~ tr/+/ /; print "Content-type:text/html\n\n"; print "$key<BR>\n"; print "<A HREF=./***.cgi>Back</A><BR>\n"; open (FH,">***.log"); @filew="$buffer\n"; print FH @filew; close(FH); exit; ---------- 以上です。よろしくお願いします。

    • ベストアンサー
    • CGI
  • 書き込んだばかりのcookieが読み込めません

    cookieを書込んだ直後、書込めたか(cookieをオフにしていたり、cookieを書込めない携帯端末からのアクセスかもしれないので)確認をしようと、cookieを読込もうとしたのですが、cookieが書込まれているにもかかわらず情報を取得することができません 実験環境として、htmlファイルにボタンを作って、cgiへ飛び、そのcgi内でcookieを書込み、cookieが書込めたかどうかで分岐して、表示するようにしています (cgiを一度実行したあと一旦ブラウザで前のhtmlファイルに戻って)cookieが既に書込まれた状態で、改めてhtmlファイルのボタンを押せばcookieは読込めますが、最初にcookieを書込んだ時に同じcgi内で即読込みを行ったら読込めません 書込が完結する前に読込みに行っているから読込めないのかとも思い、読込み前にタイムラグを作っても見ましたがやはり読込めません どうすれば書込み直後に読み込めるのでしょうか? 色々ネットで調べても見ましたが、いっこうに解決策が見つかりません ご存じの方ぜひご教授下さい よろしくお願いします なお、下にperlのコードを書いておきます #クッキーを書込 $test{sid} = "12345"; &set_cookie($test{sid}); #タイムラグ use Time::HiRes; Time::HiRes::sleep(0.8); #クッキーを読込 ($cookie{test}) = &get_cookie; if(!$cookie{test}){ print "読み込めてない"; } else{ print "読み込めた"; } ######→読み込めません##### #クッキー書込sub sub set_cookie { local(@cook) = @_; local($gmt, $cook, @t, @m, @w); @t = gmtime(time + 2*60*60); @m = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'); @w = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); $gmt = sprintf("%s, %02d-%s-%04d %02d:%02d:%02d GMT", $w[$t[6]], $t[3], $m[$t[4]], $t[5]+1900, $t[2], $t[1], $t[0]); foreach (@cook) { s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $cook .= "$_<>"; } print "Set-Cookie: SID=$cook; expires=$gmt; path=/;\n"; } #クッキー読込sub sub get_cookie { local($key, $val, *cook); $cook = $ENV{'HTTP_COOKIE'}; foreach ( split(/;/, $cook) ) { ($key, $val) = split(/=/); $key =~ s/\s//g; $cook{$key} = $val; } foreach ( split(/<>/, $cook{'SID'}) ) { s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C", hex($1))/eg; push(@cook,$_); } return (@cook); }

    • ベストアンサー
    • Perl
  • InDesign 正規表現 一桁の数字

    5(20.0%) 0(0.0%) 10(40.0%) こんな感じで一桁と二桁の数字が混じっている文字列の 一桁の数字の前に数字のスペースをつけて桁揃えしたいです 検索: (?<=[^\d\.])(\d)(?=\D) 置換: ~/$1 こんな感じで書いたんですがこれでは 文字列の一番最初のものが引っかかりません 「行頭または数字かドット以外に続く」 というのを表現できればいいのですが いろいろ試してもうまくいきません どう書けばいいのでしょうか

  • awkを使って文字列処理の問題

    awkで以下のことをやりたいですが、 a.txtの中身は aaaa bbbb cccc の三つのレコードがあります。 b.txtの中身は 東京a 埼玉b 千葉c 東京d になってます。 ファイルa.txtのみっつのレコードのを読み込んできて、b.txtに対して検索して、東京 という文字列があれば、そのレコードは、aaaaに置き換えて、あるファイルに出力する ようなスクリプトを書きたいです。 どう書けば、いいですか?教えていただけませんか?