• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:制御文字を含む文字列をフォームから受け取っての変換)

制御文字を含む文字列をフォームから受け取っての変換

このQ&Aのポイント
  • 最近Perlを勉強し始めたのですが、正規表現の扱いに困っています
  • テキストのユーザー表示部分をフォームから指定して一括変換するcgiを作成しています
  • 実行してみるとユーザー名を囲う印に括弧が使用されると全ての名前が変換されません

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

\Q

WatchGoo
質問者

お礼

1発で解決しました、有難うございます!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Access2000:フォームのテキストフォームに値を代入Part2

    前回も質問して、また違った改良が入りそうなので質問させていただきます。 マクロに「フォームを開く」を登録し、テキストフォーム値を入れることをこれまで手動でしてきました。 今回VBAを使って自動フォーム登録したいと考えています。 上記マクロをVisualBasic変換し、新たなマクロにこのVisualBasicをプロシージャとして登録させます。 DoCmd.OpenForm "フォーム名", acNormal, "", "", , acNormal 変換後上記のようなフォームを立ち上げるプログラムが生成されました。上記フォームのテキストフォーム部に値を代入させたいばあいどういう記述をしてあげればよろしいでしょうか? テキストフォームの名前は”年月”です。 Me![年月]=date ではうまくいきません。 よろしくお願いいたします。

  • 文字列比較がどうしてもできません。

    いつもお世話になっております。 現在、Perlの練習を兼ねてCGIによる簡単なスクリプトを作っています。 内容としては、フォームに入力された値を、『name.log』ファイルに書いてある値(名前一覧)を参照して、『hikaku.cgi』で比較し、 一致しなければ、『hikaku.cgi』が「名前がありません」という言葉を返す、というものです。 一応、505エラー等は起きていないのですが、どうしても文字列同士の比較ができないので、投稿しました。 各ファイルはこのような内容です。 『name.log』(604) takeshi masako-nisimura teru009 ....以下、10種ほど似たような物 『hikaku.cgi』(705) #! /usr/local/bin/perl $file = 'name.log'; $sain = 0; #フォームから値を取得する部分(省略) $ck = $FORM{'namae'}; open(DB,$file); @HIKAKU2 = <DB>; close(DB); print "Content-type: text/plain\n\n"; foreach $i (@HIKAKU2) { if($i eq $ck) { $sain++; } } if ($sain != 1) { print "名前がありません"; } __END__ こちらの考えでは、name.logの中で同じ名前はないので、$sainには1しか入らず、 したがって、名前がなかった場合は「名前がありません」が表示されるはずなのですが、どうもそれがうまく動きません。 一応、$sainとフォームデータの$ckがどうなっているか、printで表示させてみたのですが、 $sainは0、$ckは入力したフォームの値がきちんと反映されていました。 初心者ですので、間違ったところが多々あると思いますが、どなたか回答いただけると幸いです。

    • ベストアンサー
    • CGI
  • クリスタルレポート+文字列セット

    環境:Windows2000+VB5.0 既存システムの変更をしています。 VB5.0でつくっており、CrystalReportで レポート出力を行っています。 私はCrystalReportsを使ったことないのですが、 VBのフォームで 名前テキストボックス、社員番号テキストボックスがあり、 そこで印刷プレビューボタンをクリック、 そうするとプレビュー画面があがる、といった 場合、ヘッダーに名前テキストの内容と社員番号テキストの内容を 印字させたいのですが、どうしたらいいのでしょうか? 名前も社員もデータベースにあるものでなく、 フォームにあるテキストに入力されたものを使います。 ヘルプなどをみていると、 Rpt.Formulas(0) = "名前 = 'ああああ'" とやるとOKと書いていましたが、 その後、Rpt.Action = 1 でエラーになりました。(「式名が不正です。」) ちなみに、クリスタルレポートには、名前というテキストフィールドを ヘッダーにはりつけ、その部分をセットしようとしているのですが・・・ よろしくお願いいたします。

  • エクセルのユーザーフォームにあるテキストボックスへの値代入

    エクセルのユーザーフォームにあるテキストボックスへの値代入 お世話になります. エクセルのシートの入力を,ユーザーフォームを使って入力させています. 新規の場合は空欄のフォームがでるのですが,既存の列を編集するには編集用のフォームで行っています. フォームにはテキストボックスが15個(Textbox1からTextbox15まで)あり,Textbox1はCells(*,1)Textbox2はCells(*,2)というふうにセルの列との関連付けがあります. この規則性を上手く使おうと,For Nextを使っていきたいのですが, Dim r As Integer Dim i As Integer Dim t As String r = ActiveCell.Row For i = 1 To 15 t = "TextBox" & i t = Cells(r, i).Value Next i と,ここまで入力をしてみたものの,値の代入がうまくいきません. MsgboxでCells(r, i)の動きは確認できているので,おそらく,TextBox & iのところが原因と思われますが・・・ どのように修正すればよろしいでしょうか?教えてください.

  • HTMLのフォームで画像と文字を同時に指定したテキストファイルとフォルダーに書き出す方法教えてください!

    はじめましてCGI超初心者ですけどわかる方ご指導お願いいたします!僕が作りたいのはHTMLのフォームで画像と文字(フォームから相手が記入した値)を画像は指定したフォルダーにアップして文字は指定したTXTファイルに書き出しするってのを作りたいのですがどうにかみもうみまねで文字は指定したテキストに書き出すことはできたのですがどうも画像がわかりません。どうか教えてください!現時点でできてるスクリプトを書いときます。 #!/usr/bin/perl #フォームからデータを受け取り変数へ入れる read(STDIN, $formin, $ENV{'CONTENT_LENGTH'}); # + 記号を半角スペースに戻す $formin =~ tr/+/ /; #URLエンコードデータをデコード $formin =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; @indata = split (/&/,$formin); #受け取ったデータを&で区切り、配列へ foreach $tmp (@indata) #フォームの要素分(配列分)以下の処理を繰り返す { ($name,$value) = split (/=/,$tmp); # =記号で区切り、名前 と 値 に分ける $forminh{$name} = $value; #区切った名前を付けた連想配列に値を入れる } #既存ファイルを読み込み、配列@aaa に入れる open (IN,"test.txt"); @aaa = <IN>; close (IN); #フォームから受け取ったデータを配列の先頭に追加する #その際に各要素はコンマで区切り、後で使えるようにする unshift (@aaa,"$forminh{'name'}\n"); #新しいデータが追記された配列を test.txt に書き出す open (OUT,">test.txt"); print OUT @aaa; close (OUT); print "Content-type: text/html\n\n"; print <<"HTML"; データの書き込みが完了しました。<BR> お名前 $forminh{'name'}<BR> HTML exit; です!ただし画像はまだまったく理解できていません! もしお分かりの人は教えてくれるとうれしいです! よいご指導まってます!

  • フォームチェックで変数は使えませんか?

    いろいろなフォームに対応する汎用チェックスクリプトを 書いているのですが、 strName = strcChecks[i]; var a = document.forms[0].strName.value;                ▲               この部分 ・・・・の名前指定の際、変数が使えないのでしょうか。 たくさん入力するテキストボックスやらチェック ボックスがあって一つ一つ、document.forms・・・ と書くのが手間なので何か方法があれば・・・

  • ユーザーフォームいろいろについて

    いろいろ手探りでVBAでユーザーフォームを作成し コマンドボックスによりテキストボックスを指定のセルへ転記し ユーザーフォームを終了させるという簡単ですがプログラミングをしました。 さらに、下記のことができたらと思ってるのですがどうしたら良いのかわかりません。 1.2種類のユーザーフォームを作成し、ファイルを開くと  選択肢ウィンドウが現れ選択したほうのユーザーフォームが開く 2.チェックボックスまたはラジオボタンで選択された項目を  指定のセルへ○を反映させたい。 以上のことを加えたいのですが、できますでしょうか。 つたない説明ですが御回答の程宜しくお願い致します。

  • ファイルまでのパス文字列からの変換について

    以下はJavaScriptからイメージファイルのパスを受け取り「\\」の部分を「/」に変換後 imageFile.exists()でそのファイルが存在するかを調べてからファイルを削除するものですが 結果がexists()の結果が「false」しか返ってきません。 しかしHTML側で戻り値「imageFilePath」の中身を見てみると「\\」の部分は「/」に変換されています。 また直接JavaScript側でremoveThumbnailImage()を呼び出す時に removeThumbnailImage("C:/Users/Admin/workspace/website/images/test.jpg")の様に直接パスを指定又はJava側でimageFilePath = "C:/Users/Admin/workspace/website/images/test.jpg"の様にするとexists()では「true」を返してきます。 どうすれば解決するでしょうか? public static String removeThumbnailImage(String imageFilePath){ //// 受け取ったパスの「\\」を「/」に変換するが「false」しか返ってこない //imageFilePath = imageFilePath.replaceAll("\\\\", "/"); ////以下の場合は「true」を返す(\\はバックスラッシュ2つ) //imageFilePath = "C:\\Users\\Admin\\workspace\\website\\images\\test.jpg"; //imageFilePath = "C:/Users/Admin/workspace/website/images/test.jpg"; //StringBuffer sb = new StringBuffer(); ////以下の処理でも結果は「false」 /*StringBuffer sb = new StringBuffer(); for(int i=0;i<imageFilePath.length();i++){ switch(imageFilePath.charAt(i)){ case '\\': sb.append("/"); break; default : sb.append(imageFilePath.charAt(i)); }//end switch }//end for*/ /////画像を保存したファイルまでのパスでFileオブジェクト生成 File imageFile = new File(sb.toString()); try{ ////イメージファイルが存在するか調べる if(imageFile.exists()){ ////イメージファイルを削除 //imageFile.delete(); return "true"; }else{ return imageFilePath; }//end if }catch(Exception e){ e.printStackTrace(); }//end try }

    • ベストアンサー
    • Java
  • C++の数独をJavaに変換したいのですが

    C言語のプログラムをJavaに変換しようと思っているのですが、上手くいきません。 下記のプログラムを実行すると、一発で数独の解答が出来上がるようになっています。 Javaにはgotoがないので、そこをどのように変えたらいいのかで迷っています。 どう直したら良いのでしょうか。 #include<stdio.h> #include<stdlib.h> #include <time.h> int main(void) { int i,j,k,l,chk=0,num=0,tmp,count=0; int a[9][9]; srand((unsigned) time(NULL)); start: count=0; for(i = 0; i < 9; i++) for(j = 0; j < 9; j++) a[i][j]=0; for(tmp=1;tmp<10;tmp++){ num=0; while(num<9){ i = rand() % 9; j = rand() % 9; chk=0; for(k=0;k<9;k++) if(a[i][k]==tmp)chk=1; for(k=0;k<9;k++) if(a[k][j]==tmp)chk=1; for(k=(i/3)*3;k<(i/3)*3+3;k++){ for(l=(j/3)*3;l<(j/3)*3+3;l++){ if(a[k][l]==tmp)chk=1; } } if((chk==0)&&(a[i][j]==0)){ a[i][j]=tmp; num++; } if(count%100==99){ count++; for(i = 0; i < 9; i++) for(j = 0; j < 9; j++) if(a[i][j]==tmp)a[i][j]=0; num=0; } if(count>10000) goto start; count++; } } for(i = 0; i < 9; i++){ for(j = 0; j < 9; j++){ printf("%d ",a[i][j]); } printf("\n"); } return 0; }

    • ベストアンサー
    • Java
  • ユーザーフォームへの文字の表示方法について

    VBAを始めたばかりの超初心者です。単純にユーザーフォームを作って検索ボタンを付け、検索結果を表示させる。こんな単純な事がわからずに困っています。 問題は何行もヒットしたらスクロールバーはどうするのか? 検索結果だけの部分をスクロールさせたい。 コントロールは何を張るのか?ラベル?テキストボックス? 検索したい情報はエクセルで有るのでそれを引っ張ってきたいだけなですが。。 出来れば同一のユーザーフォームに表示させたいです。 どなたか教えて下さい。宜しくお願い致します。