- ベストアンサー
複数の端末からアカウント情報からユーザの所属グループを抽出する方法
- 複数の端末からアカウント情報とユーザ名をテキストに出力しています。そのアカウント情報から、ユーザが所属しているグループを抽出する必要があります。指定のユーザを検索して、ユーザをキーにユーザより上に「:」がある行を特定し、その行を抽出する方法で解決できます。
- テキストの内容は一行ずつでも全行まとめてでも呼び出せます。複数のユーザが所属している場合も考慮しています。
- 具体的な手順は、指定のユーザを検索し、そのユーザより上に「:」がある行を特定します。そしてその行を抽出し、必要に応じて「:」を削除します。この方法を使って、アカウント情報からユーザの所属グループを抽出することができます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
何やら小難しいことを考えておられるが、以下の方法でどうでしょう? 1.ReadLine で1行ずつ読み込む 2.文字列の末尾が:だったらそれはグループ名、でなければユーザー名 3.ユーザー名がヒットすれば2.で設定したグループ名を出力 4.1~3をEOFまで繰り返す。 プログラムにすれば以下のようになります。 Dim fso, fin Dim strGrp, strLine Set fso = CreateObject("Scripting.FileSystemObject") Set fin = fso.OpenTextFile("ファイル名", 1) Do While Not fin.AtEndOfStream strLine = fin.ReadLine If Right(strLine, 1) = ":" Then strGrp = Left(strLine, Len(strLine) - 1) Else If strLine = "Nakayama" Then Wsh.Echo strGrp End If Loop fin.Close 以上
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
質問の表現が持って回った表現で、判りにくい。 コンピュター処理は、本当のデータのもつ意味などは問題にしない(出来ない)。 そんなことはコンピュタープログラムをやるものはまず始にわかること。 だからデータの意味などくだくだと、書かなくて良い場合がほとんど。 形で処理することが多い。だから形の特徴なりを質問で説明すべきなんだ。 だから>複数の端末からアカウント情報とユーザ名をテキストに出力しています。そのアカウント情報から・・なんて書かなくても良いかもしれない。かえって読むほうはわずらわしい。 ーーーー だから、「どういう文字列ファイルがあって」を例として、書くべき。 この質問の場合は「アカウント」以下なのだろう。 「テキストレコードとして1行」づつの模擬実例を書けば良い。 「アカウント」以下は1行が1レコードなのか。1行に他の余分なデータもあるのか。あれば書いておくこと。 そしてテキストデータの中でどういう特徴をとらえたら、>ユーザが所属しているグループを、とらえられるのか、質問者が考えて、質問に書くべきだ。特徴や情況を一番わかっているのは質問者だし、質問者のニーズなんだから。ここまで出来れば VBSの極く初心者でなければ、出来たも同然と思うが、判らなければ、使うコード(関数も含め)やロジックを質問することになる。 本件では、単語末尾の「:」がキーになりそうなんだがどうか? 補足してほしいが、質問者は今まであまり細くしないが。 そこらあたりを割り出せないようなら、質問者はプログラム作成はおぼつかない。
お礼
ありがとうございました。
お礼
ありがとうございます。 すごく参考にさせて頂きました。 構文の勉強になりました。