コード例 #1
0
        static void Main(string[] args)
        {
            //declares the delagate
            Console.WriteLine("Please enter a string");

            stringReader processReader;

            processReader = new stringReader(Stringer);
        }
コード例 #2
0
ファイル: Receive.cs プロジェクト: decriptor/tomdroid
        void useSendFile(File file, string contents)
        {
            Note remoteNote = new Note();

            if(file.Path.EndsWith(".note") && contents.StartsWith("<?xml")) { // xml note file

                try {
                    // Parsing
                    // XML
                    // Get a SAXParser from the SAXPArserFactory
                    SAXParserFactory spf = SAXParserFactory.newInstance();
                    SAXParser sp = spf.newSAXParser();

                    // Get the XMLReader of the SAXParser we created
                    XMLReader xr = sp.getXMLReader();

                    // Create a new ContentHandler, send it this note to fill and apply it to the XML-Reader
                    NoteHandler xmlHandler = new NoteHandler(remoteNote);
                    xr.setContentHandler(xmlHandler);

                    // Create the proper input source
                    stringReader sr = new stringReader(contents);
                    InputSource inputSource = new InputSource(sr);

                    TLog.d(TAG, "parsing note");
                    xr.parse(inputSource);

                // TODO wrap and throw a new exception here
                } catch (Exception e) {
                    e.PrintStackTrace();
                    if(e as TimeFormatException) TLog.e(TAG, "Problem parsing the note's date and time");
                    Finish();
                }
                // the note guid is not stored in the xml but in the filename
                remoteNote.setGuid(file.Name.Replace(".note", ""));
                Java.Util.Regex.Pattern note_content = Java.Util.Regex.Pattern.Compile("<note-content[^>]+>(.*)<\\/note-content>", Pattern.CASE_INSENSITIVE+Pattern.DOTALL);

                // FIXME here we are re-reading the whole note just to grab note-content out, there is probably a better way to do this (I'm talking to you xmlpull.org!)
                Matcher m = note_content.Matcher(contents);
                if (m.Find()) {
                    remoteNote.setXmlContent(NoteManager.stripTitleFromContent(m.Group(1),remoteNote.getTitle()));
                } else {
                    TLog.w(TAG, "Something went wrong trying to grab the note-content out of a note");
                    return;
                }
            }
            else { // ordinary text file
                remoteNote = NewNote.createNewNote(this, file.getName().replaceFirst("\\.[^.]+$", ""), XmlUtils.escape(contents));
            }

            remoteNote.setFileName(file.AbsolutePath);

            // check and see if the note already Exists; if so, send to conflict resolver
            Note localNote = NoteManager.getNoteByGuid(this, remoteNote.getGuid());

            if(localNote != null) {
                int compareBoth = Time.Compare(localNote.getLastChangeDate(), remoteNote.getLastChangeDate());

                TLog.v(TAG, "note conflict... showing resolution dialog TITLE:{0} GUID:{1}", localNote.getTitle(), localNote.getGuid());

                // send everything to Tomdroid so it can show Sync Dialog

                Bundle bundle = new Bundle();
                bundle.PutString("title",remoteNote.getTitle());
                bundle.PutString("file",remoteNote.getFileName());
                bundle.PutString("guid",remoteNote.getGuid());
                bundle.PutString("date",remoteNote.getLastChangeDate().Format3339(false));
                bundle.PutString("content", remoteNote.getXmlContent());
                bundle.PutString("tags", remoteNote.getTags());
                bundle.PutInt("datediff", compareBoth);
                bundle.PutBoolean("noRemote", true);

                Intent cintent = new Intent(ApplicationContext, typeof(CompareNotes));
                cintent.PutExtras(bundle);

                StartActivityForResult(cintent, 0);
                return;
            }

            // note doesn't exist, just give it a new title if necessary
            remoteNote.setTitle(NoteManager.validateNoteTitle(this, remoteNote.getTitle(), remoteNote.getGuid()));

            // add to content provider
            Android.Net.Uri uri = NoteManager.putNote(this, remoteNote);

            // view new note
            Intent i = new Intent(Intent.ActionView, uri, this, typeof(Tomdroid));
            i.PutExtra("view_note", true);
            i.AddFlags(ActivityFlags.ClearTop);
            StartActivity(i);
            Finish();
        }