2010/7/18 Wirasto Karim <wirastoka...@gmail.com>:
> Langsung saya ya...
>
> Saya ingin tau metode terbaik dalam menyimpan berkas. Dari source code
> qscintilla, saya perhatikan di fungsi write yang ada (penyimpanan
> berkas), qscintilla sepertinya melakukan penimpaan dari bit awal
> (truncate).
mode penulisan kan didefinisikan saat open,
tidak terlihat dari potongan kode ini bahwa modenya truncate

> Apa semua aplikasi melakukan hal ini kalau melakukan
> penyimpanan perubahan pada file ? Atau jangan-jangan malah saya yang
> salah memahami potongan kode yang ada.
kode di bawah memastikan bahwa seluruh buffer ditulis
bila operasi penulisan pertama hanya berhasil menulis 125 byte misalnya,
padahal panjang buffer 500 byte, maka operasi dilanjutkan dengan
usaha untuk menulis mulai byte ke-126, sepanjang 500-125 byte

>
> Ini potongan kode dari qscintilla yang digunakan untuk menyimpan
>
> File : QScintilla-gpl-2.4.3/Qt4/qsciscintilla.cpp
>
> ======================================================================
> // Write the text to a QIODevice.
> bool QsciScintilla::write(QIODevice *io) const
> {
>    const char *buf = reinterpret_cast<const char
> *>(SendScintillaPtrResult(SCI_GETCHARACTERPOINTER));
>    const char *bp = buf;
>    uint buflen = qstrlen(buf);
>
>    while (buflen > 0)
>    {
>        qint64 part = io->write(bp, buflen);
>
>        if (part < 0)
>            return false;
>
>        bp += part;
>        buflen -= part;
>    }
>
>    return true;
> }


--
andika

--
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis

Kirim email ke