parent
4426cb5733
commit
969397b719
5 changed files with 155 additions and 0 deletions
@ -0,0 +1,71 @@ |
|||||||
|
import 'dart:io'; |
||||||
|
|
||||||
|
import 'dart_tutorial/addressbook.pb.dart'; |
||||||
|
|
||||||
|
// This function fills in a Person message based on user input. |
||||||
|
Person promtForAddress() { |
||||||
|
|
||||||
|
Person person = Person(); |
||||||
|
|
||||||
|
print('Enter person ID: '); |
||||||
|
String input = stdin.readLineSync(); |
||||||
|
person.id = int.parse(input); |
||||||
|
|
||||||
|
print('Enter name'); |
||||||
|
person.name = stdin.readLineSync(); |
||||||
|
|
||||||
|
print('Enter email address (blank for none) : '); |
||||||
|
String email = stdin.readLineSync(); |
||||||
|
if (email.isNotEmpty) { |
||||||
|
person.email = email; |
||||||
|
} |
||||||
|
|
||||||
|
while(true) { |
||||||
|
print('Enter a phone number (or leave blank to finish): '); |
||||||
|
String number = stdin. readLineSync(); |
||||||
|
if (number.isEmpty) break; |
||||||
|
|
||||||
|
Person_PhoneNumber phoneNumber = Person_PhoneNumber(); |
||||||
|
|
||||||
|
phoneNumber.number = number; |
||||||
|
print('Is this a mobile, home, or work phone? '); |
||||||
|
|
||||||
|
String type = stdin.readLineSync(); |
||||||
|
switch(type) { |
||||||
|
case 'mobile': |
||||||
|
phoneNumber.type = Person_PhoneType.MOBILE; |
||||||
|
break; |
||||||
|
case 'home': |
||||||
|
phoneNumber.type = Person_PhoneType.HOME; |
||||||
|
break; |
||||||
|
case 'work': |
||||||
|
phoneNumber.type = Person_PhoneType.WORK; |
||||||
|
break; |
||||||
|
default: |
||||||
|
print('Unknown phone type. Using default.'); |
||||||
|
} |
||||||
|
person.phones.add(phoneNumber); |
||||||
|
} |
||||||
|
|
||||||
|
return person; |
||||||
|
} |
||||||
|
|
||||||
|
// Reads the entire address book from a file, adds one person based |
||||||
|
// on user input, then writes it back out to the same file. |
||||||
|
main(List<String> arguments) { |
||||||
|
if (arguments.length != 1) { |
||||||
|
print('Usage: add_person ADDRESS_BOOK_FILE'); |
||||||
|
exit(-1); |
||||||
|
} |
||||||
|
|
||||||
|
File file = File(arguments.first); |
||||||
|
AddressBook addressBook; |
||||||
|
if (!file.existsSync()) { |
||||||
|
print('File not found. Creating new file.'); |
||||||
|
addressBook = AddressBook(); |
||||||
|
} else { |
||||||
|
addressBook = AddressBook.fromBuffer(file.readAsBytesSync()); |
||||||
|
} |
||||||
|
addressBook.people.add(promtForAddress()); |
||||||
|
file.writeAsBytes(addressBook.writeToBuffer()); |
||||||
|
} |
@ -0,0 +1,47 @@ |
|||||||
|
import 'dart:io'; |
||||||
|
|
||||||
|
import 'dart_tutorial/addressbook.pb.dart'; |
||||||
|
import 'dart_tutorial/addressbook.pbenum.dart'; |
||||||
|
|
||||||
|
// Iterates though all people in the AddressBook and prints info about them. |
||||||
|
void printAddressBook(AddressBook addressBook) { |
||||||
|
for (Person person in addressBook.people) { |
||||||
|
print('Person ID: ${person.id}'); |
||||||
|
print(' Name: ${person.name}'); |
||||||
|
if (person.hasEmail()) { |
||||||
|
print(' E-mail address:${person.email}'); |
||||||
|
} |
||||||
|
|
||||||
|
for (Person_PhoneNumber phoneNumber in person.phones) { |
||||||
|
switch (phoneNumber.type) { |
||||||
|
case Person_PhoneType.MOBILE: |
||||||
|
print(' Mobile phone #: '); |
||||||
|
break; |
||||||
|
case Person_PhoneType.HOME: |
||||||
|
print(' Home phone #: '); |
||||||
|
break; |
||||||
|
case Person_PhoneType.WORK: |
||||||
|
print(' Work phone #: '); |
||||||
|
break; |
||||||
|
default: |
||||||
|
print(' Unknown phone #: '); |
||||||
|
break; |
||||||
|
} |
||||||
|
print(phoneNumber.number); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// Reads the entire address book from a file and prints all |
||||||
|
// the information inside. |
||||||
|
main(List<String> arguments) { |
||||||
|
if (arguments.length != 1) { |
||||||
|
print('Usage: list_person ADDRESS_BOOK_FILE'); |
||||||
|
exit(-1); |
||||||
|
} |
||||||
|
|
||||||
|
// Read the existing address book. |
||||||
|
File file = new File(arguments.first); |
||||||
|
AddressBook addressBook = new AddressBook.fromBuffer(file.readAsBytesSync()); |
||||||
|
printAddressBook(addressBook); |
||||||
|
} |
@ -0,0 +1,5 @@ |
|||||||
|
name: addressbook |
||||||
|
description: dartlang.org example code. |
||||||
|
|
||||||
|
dependencies: |
||||||
|
protobuf: |
Loading…
Reference in new issue