1

私はチャット プログラムの巨人をコーディングしましたが、これまでのところ、何日もかけて考え抜いたものも含め、私を阻んできたすべての障害をなんとか乗り越えてきましたが、この障害については理解できません。だから私はプレフィックスシステムに取り組んでいます。ターゲット名をターゲットテキストボックスに入力し、プレフィックス名をプレフィックステキストボックスに入力してから、プレフィックスボタンをクリックします。ユーザー名と選択したプレフィックスを「|」でテキストファイルに書き込むようにしました それを分離します。このような:

void writePrefixes(string target, string prefixs)
    {
        TextWriter twp = new StreamWriter("prefix.txt");
        twp.WriteLine(target + "|" + prefixs + Environment.NewLine);
        twp.Close();
    }

サーバーが起動するたびに、テキストファイルをインポートし、foreach ループを使用してそれぞれをリストにロードします。ここで、クライアントがメッセージを送信するたびに、リスト内の「ターゲット」でユーザー名を確認し、その前にプレフィックスを持つようにユーザー名を変更します。これどうやってするの?前もって感謝します!長い質問で申し訳ありません。私は初心者です。長すぎる場合は教えてください。

4

2 に答える 2

1

したがって、基本的に 2 つのリストがあります。1 つはユーザー名、もう 1 つはプレフィックス、両方とも文字列です。入力したすべてのプレフィックスを、プレフィックスで使用されていない文字で区切って保存する必要があると思います。

//go through file
var entry = file.ReadLine().Split('|');
userList.Add(entry[0]);
prefixList.Add(entry[1]);

//when you want to go for the prefix
var idx = userList.IndexOf(username);
var allPrefix = prefixList[idx].Split("seperator");
var newPrefix = allPrefix[prefixList[idx].Count - 2];

//yes you have to make sure the index is correct, you dont leave bounderies etc. but I hope you get the idea

また、以前に使用されていたインデックスが保存されるリストから削除されていることを確認する必要があります。

于 2012-10-30T06:58:47.590 に答える
1

したがって、次のようなデータを含むテキストファイルがあります。

user1|pre1
user2|pre2
など

そして、それらの文字列をプレーンなリストにロードしていますか? このようなものが最良の選択肢になると思います:

var userList = new List<string>();
userList.Add("TestUser1|pre1");
userList.Add("TestUser2|pre2");

foreach (var user in userList)
{
    var userParts = user.Split(new[] { '|' });
    var userName = userParts[0];
    var prefix = userParts[1];

    Console.WriteLine(string.Format("{0}{1}", prefix, userName));
}

私があなたを正しく理解したことを願っています。

于 2012-10-30T06:55:06.720 に答える