複数の端末からアカウント情報とユーザ名をテキストに出力しています。
そのアカウント情報から、ユーザが所属しているグループを抽出する必要があります。
以下のような形の形式でテキストには出力されています。
・テキストの内容は一行ずつでも全行まとめてでも呼び出せる(alllineは全行格納、lineは一行ずつループで読み取る)
・内容はそれぞれの端末で可変
・複数所属している場合もある
・テキストからユーザの所属グループのみを出力する
たとえば以下のテキストからNakayamaの所属グループであるAdministrators:
とUsersを抽出したい場合ですが、
InstrでInstr(allline, nakayama)探しだし、その場所の文字数を特定することはできます。
ですがそこからどうやってAdministratorsのみを取得すればよいのでしょうか。
思いついたのは指定のユーザを検索して、
ユーザをキーにそれより上に:がある行を特定しその行を抽出して、
Replaseで:を消してやればいいと思うのですが、
そのようなことはできるのでしょうか。
他の方法でもありましたらご教示ください。
テキストのアカウント情報サンプル
▲アカウント
Administrators:
Administrator
Nakayama
Kimura
DomainUser
Backup Operators:
Guest:
Users:
Kitagawa
Maruyama
Nakayama
PowerUser:
No.2
- 回答日時:
質問の表現が持って回った表現で、判りにくい。
コンピュター処理は、本当のデータのもつ意味などは問題にしない(出来ない)。
そんなことはコンピュタープログラムをやるものはまず始にわかること。
だからデータの意味などくだくだと、書かなくて良い場合がほとんど。
形で処理することが多い。だから形の特徴なりを質問で説明すべきなんだ。
だから>複数の端末からアカウント情報とユーザ名をテキストに出力しています。そのアカウント情報から・・なんて書かなくても良いかもしれない。かえって読むほうはわずらわしい。
ーーーー
だから、「どういう文字列ファイルがあって」を例として、書くべき。
この質問の場合は「アカウント」以下なのだろう。
「テキストレコードとして1行」づつの模擬実例を書けば良い。
「アカウント」以下は1行が1レコードなのか。1行に他の余分なデータもあるのか。あれば書いておくこと。
そしてテキストデータの中でどういう特徴をとらえたら、>ユーザが所属しているグループを、とらえられるのか、質問者が考えて、質問に書くべきだ。特徴や情況を一番わかっているのは質問者だし、質問者のニーズなんだから。ここまで出来れば
VBSの極く初心者でなければ、出来たも同然と思うが、判らなければ、使うコード(関数も含め)やロジックを質問することになる。
本件では、単語末尾の「:」がキーになりそうなんだがどうか?
補足してほしいが、質問者は今まであまり細くしないが。
そこらあたりを割り出せないようなら、質問者はプログラム作成はおぼつかない。
No.1ベストアンサー
- 回答日時:
何やら小難しいことを考えておられるが、以下の方法でどうでしょう?
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
以上
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- PDF PDFの出力時のファイル名を消したい 3 2022/09/05 01:16
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- その他(職業・資格) 色彩検定1級について 2 2022/05/06 16:20
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- Excel(エクセル) Excelで数式をそのままコピーしたい どうすればいいですか? 4 2022/09/16 02:16
- Access(アクセス) Access 複数条件検索の設定が上手く行きません 1 2022/07/22 20:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
AS3.0 読み込んだ外部テキスト...
-
ファイルからテキストエリアへ
-
ダイナミックテキストに読み込...
-
2つのテキストファイルを比べて...
-
【ActionScript】テキストボッ...
-
テキストボックスの中身をリセ...
-
vbs 割算のあまり
-
プログラミング、アーキテクチ...
-
YOASOBI
-
マウス自体の移動量の取得
-
FLASHでの色変更
-
PYTHONのtkinterについて
-
マスクにグラデーションをかけ...
-
【VB.NET】別Formのボタンが押...
-
外部ファイルを読み込んでロス...
-
ウインドウハンドルとインスタ...
-
UWSCのBTN関数について。
-
下記のサイトのTOPページにある...
-
PythonでSetWindowPosを使うに...
-
オブジェクトのランダムな位置表示
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のアプリケーションのテキス...
-
テキストボックスの中身をリセ...
-
テキストボックスにセルの値を...
-
変数に256文字以上のテキストを...
-
RPG(AS400)の本、サイトってあ...
-
ホームぺージ制作で間違って重...
-
VB6.0 でメニューを作りたいん...
-
改行含むテキストの表示の仕方
-
pdfのテキスト全文コピー、テキ...
-
VB.NET2005 DataGridViewでレコ...
-
コモンダイアログのshowopenに...
-
VBAでホームページからコピーし...
-
VS2008 C# ボタンのテキストを...
-
テキストエリア内の文字列にリ...
-
'2465'指定した式で参照してい...
-
VBAからPDFのテキストフィールド
-
チェックボックスのテキストを...
-
VBSでMid関数を使ったらエラー...
-
ドラッグ&ドロップからの取得
-
VB.NET メッセージボックスの表...
おすすめ情報