static void saveDocument (TextEditor me, MelderFile file) { autostring32 text = GuiText_getString (my textWidget); MelderFile_writeText (file, text.peek(), Melder_getOutputEncoding ()); my dirty = false; MelderFile_copy (file, & my file); if (my v_fileBased ()) Thing_setName (me, Melder_fileToPath (file)); }
void Strings_writeToRawTextFile (Strings me, MelderFile file) { autoMelderString buffer; for (long i = 1; i <= my numberOfStrings; i ++) { MelderString_append (& buffer, my strings [i], U"\n"); } MelderFile_writeText (file, buffer.string, Melder_getOutputEncoding ()); }
void TableOfReal_writeToHeaderlessSpreadsheetFile (TableOfReal me, MelderFile file) { try { autoMelderString buffer; MelderString_copy (& buffer, L"rowLabel"); for (long icol = 1; icol <= my numberOfColumns; icol ++) { MelderString_appendCharacter (& buffer, '\t'); wchar_t *s = my columnLabels [icol]; MelderString_append (& buffer, s != NULL && s [0] != '\0' ? s : L"?"); } MelderString_appendCharacter (& buffer, '\n'); for (long irow = 1; irow <= my numberOfRows; irow ++) { wchar_t *s = my rowLabels [irow]; MelderString_append (& buffer, s != NULL && s [0] != '\0' ? s : L"?"); for (long icol = 1; icol <= my numberOfColumns; icol ++) { MelderString_appendCharacter (& buffer, '\t'); double x = my data [irow] [icol]; MelderString_append (& buffer, Melder_double (x)); } MelderString_appendCharacter (& buffer, '\n'); } MelderFile_writeText (file, buffer.string, Melder_getOutputEncoding ()); } catch (MelderError) { Melder_throw (me, ": not saved to tab-separated file."); } }
MelderFile Data_createTextFile (Daata me, MelderFile file, bool verbose) { autoMelderFile mfile = MelderFile_create (file); #if defined (_WIN32) file -> requiresCRLF = true; #endif file -> verbose = verbose; file -> outputEncoding = Melder_getOutputEncoding (); if (file -> outputEncoding == kMelder_textOutputEncoding_ASCII_THEN_UTF16) file -> outputEncoding = Data_canWriteAsEncoding (me, kMelder_textOutputEncoding_ASCII) ? kMelder_textOutputEncoding_ASCII : kMelder_textOutputEncoding_UTF16; else if (file -> outputEncoding == kMelder_textOutputEncoding_ISO_LATIN1_THEN_UTF16) file -> outputEncoding = Data_canWriteAsEncoding (me, kMelder_textOutputEncoding_ISO_LATIN1) ? kMelder_textOutputEncoding_ISO_LATIN1 : kMelder_textOutputEncoding_UTF16; if (file -> outputEncoding == kMelder_textOutputEncoding_UTF16) { binputu2 (0xfeff, file -> filePointer); } return mfile.transfer(); }