2

タイトルが少しずれているように思われる場合は、事前にお詫び申し上げます。正確に何と名付けるべきかを決めるのに苦労しました。とにかく、基本的に私が今やっていることは、低レベルの I/O を扱う完全な宿題です。私の 1 つの課題では、2 つの .txt ファイルを渡しました。1 つは電子メール アドレスのリストを含み、もう 1 つは電子メール リストに含まれなくなったリスト メンバーを含みます。私がしなければならないことは、2 番目のリストからメンバーのメールを削除することです。さらに、.txt ファイルには驚くべき結果が含まれている可能性があります。メールをクリーンアップし、メールの後にあるセミコロン、コンマ、スペースなどの不要な句読点を削除する必要があります。さらに、すべてのテキストを小文字にする必要があります。私はこの問題にさまざまな方法で苦労しています (出力に必要なものをファイルに書き込む方法が完全にはわかりません)。しかし、今のところ私の主な関心事は、購読解除メッセージを正しい順序で出力することです。Sortrow が機能していないようです。

ここにいくつかのテストケースがあります:

Test Cases
unsubscribe('Grand Prix Mailing List.txt', ...
              'Unsubscribe from Grand Prix.txt')
     => output file named 'Grand Prix Mailing List_updated.txt' that looks
        like 'Grand Prix Mailing List_updated_soln.txt'
     => output file named 'Unsubscribe from Grand Prix_messages.txt' that 
        looks like 'Unsubscribe from Grand Prix_messages_soln.txt'

元のメーリング リスト

Grand Prix Mailing List:
MPLUMBER3@gatech.edu, 
lplumber3@gatech.edu 
Ttoadstool3@gatech.edu;
bkoopa3@gatech.edu
ppeach3@gatech.edu,
ydinosaur3@gatech.edu
kBOO3@gatech.edu
WBadguy3@gatech.edu;
FKong3@gatech.edu
dkong3@gatech.edu
dbones3@gatech.edu

いいえのような人々:

MARIO PLUMBER; 
bowser koopa 
Luigi Plumber,
Donkey Kong 
King BOO;
Princess Peach

その後、次のようになります。

ttoadstool3@gatech.edu
ydinosaur3@gatech.edu
wbadguy3@gatech.edu
fkong3@gatech.edu
dbones3@gatech.edu

私のファイル出力:

Mario, you have been unsubscribed from the Grand Prix mailing list.
Luigi, you have been unsubscribed from the Grand Prix mailing list.
Bowser, you have been unsubscribed from the Grand Prix mailing list.
Princess, you have been unsubscribed from the Grand Prix mailing list.
King, you have been unsubscribed from the Grand Prix mailing list.
Donkey, you have been unsubscribed from the Grand Prix mailing list.

そのため、アムロは親切にも解決策を提供してくれましたが、それは私が現在知っているよりも少し上です. 私の主な問題は、登録解除メッセージを出力するときに、元のメーリング リストと同じ順序にする必要があることです。たとえば、クッパはルイージの前に不満リストに載っていましたが、登録解除メッセージでは、ルイージが彼の前に来る必要があります。

これが私の元のコードです:

function[] = unsubscribe(email_ids, member_emails)
    Old_list = fopen(email_ids, 'r'); %// opens my email list
    Old_Members = fopen(member_emails, 'r'); %// Opens up the names of people who want to unsubscribe
    emails = fgets(Old_list); %// Reads first line of emails
    member_emails = [member_emails]; %// Creates an array to populate
while ischar(emails) %// Starts my while loop
%// Pulls out a line in the email
    emails = fgets(Old_list);
%// Quits when it sees this jerk
    if emails == -1
        break;
    end

%// I go in to clean stuff up here, but it doesn't do any of it. It's still in the while loop though, so I am not sure where the error is
proper_emails = lower(member_emails); %// This is supposed to lowercase the emails, but it's not working
unwanted = findstr(member_emails, ' ,;');
member_emails(unwanted) = '';
member_emails = [member_emails, emails];
end

while ischar(Old_Members) %// Does the same for the members who want to unsubscribe
    names = fgetl(member_emails);
    if emails == -1
        break
    end
proper_emails = lower(names); %// Lowercases everything
unwanted = findstr(names, ' ,;');
names(unwanted) = '';
end

Complainers = find(emails);

New_List = fopen('Test2', 'w'); %// Creates a file to be written to
fprintf(New_List, '%s', member_emails); %// Writes to it
Sorry_Message = fopen('Test.txt', 'w');
fprintf(Sorry_Message, '%s', Complainers);

%// Had an issue with these, so I commented them out temporarily
%// fclose(New_List);
%// fclose(Sorry_Message);
%// fclose(email_ids); 
%// fclose(members);

end
4

1 に答える 1